2017-05-23 14 views
2

あなたのアドバイスありがとうございます。私の残りの質問は次のとおりです: 次の文でカラム名 'sulphate'を置き換えることができます... dataclean < - datatable $ sulfate [!datanas] ....パラメータ 'pollutant'を参照すると「硫酸塩」の値を持たないかもしれませんか?関数のパラメータ - 参照で置き換えてください

+0

3行目の 'datanas < - is.na(datatable [、pollutant])'を試してください。 –

+0

パラメータ値を取得しようとするとどういう意味ですか? –

+0

文字列を使用する必要があります。関数の引数を文字列( "")として定義し、文字列を 'setwd()'で直接使用し、データテーブルで 'datatable [、pollutant]'を使用します。 – LAP

答えて

1

引数に値を添付すると、値は作業領域のオブジェクトと同じように表示されます。しかし、環境は作業領域ではなく機能のものです。

あなたのケースでは、directoryは文字列になり、動作します。初めて。作業ディレクトリが変更され、関数が再び機能するには、前の作業ディレクトリに戻す必要があります。これはかなり乱雑になるので、私がやりたいことはフルパスで生ファイルを参照することだけです。詳細は、?list.filesを参照してください。あなたの2番目の質問については、あなたの最善の策は、変数内の特定のレベルを参照するように

をされ、私が「何を保つために、そこにdrop = FALSE引数を追加すると便利です

x[, pollutant] 

を行うことですmはdata.frameと仮定します。

datatable引数を実装することで、機能を向上させることができます。そうすれば、すべてのオブジェクトをうまく束ねることができます。

ここで注意すべき最も重要なことは「デバッグ」です。少なくともbrowser()を使用する方法を学ぶ必要があります。この関数は、呼び出された段階で関数の実行を停止します。これにより、Rコンソールで、関数内の要素を検査し、コードを実行して何が起こっているかを確認することができます。この方法では、コードの開発をスピードアップすることができます。少なくとも、通常はまだすべてのデータ構造とパラダイムを内部化していないときです。

+0

ありがとうございましたLeo P - あなたは正しいと思いますが、私は単純に省略しました関数呼び出しに引用符を含めます。ごめんなさい! –

+0

そしてJogo - リンクをありがとう - それはまったく同じ問題ですが、可変汚染物質には2つの可能性しかないので動作するIf文を使用することで解決されています。しかし、私はもっと一般的な解決策がないと信じることはできません。エッセンスは、私は硝酸塩のすべてのインスタンスをパラメータ汚染物質への参照で置き換える必要があります。出来ますか? - 完全なコードで投稿を更新します。 –

関連する問題