2

Python でデータ収集コードを書いています。Rにできるだけ簡単にインポートできるデータフレームファイルを作成したいと思います。私は自分の Python コードが何を生成するかを完全に制御しており、列を因子/数値ベクトルなどに変換するなど、R 側で不要なデータ処理を避けたいと考えています。また、可能であれば、できればファイル名の単一の引数で単一の関数を呼び出すことにより、R 側でそのデータのインポートをできるだけ簡単にしたいと考えています。

これを可能にするには、どのようにデータをファイルに保存すればよいですか?

4

2 に答える 2

4

CSV を使用するという Brandon の提案は、データが膨大でない場合、特に大量の浮動小数点値が含まれていない場合に最適です。この場合、CSV 形式は非常に非効率的です。

巨大なデータセットをより適切に処理するオプションは、pandas で同等の DataFrame を構築し、その機能を使用してhdf5にダンプし、その方法で R で開くことです。その例については、たとえばこの質問を参照してください。

この他のアプローチはやり過ぎのように感じますが、パンダの実験的な R インターフェイスを使用してメモリ内のデータフレームを R に直接転送し、R から直接保存することもできます。

于 2013-02-17T06:51:56.560 に答える
4

http://docs.python.org/2/library/csv.html Python のモジュールを使用して CSV にデータを書き込むことができます。Rcsvで使用するのは簡単です( を参照) 。read.csv?read.csv

を使用して R にデータを読み込む場合read.csv、特に指定しない限り、文字列は因数に変換され、数値フィールドは数値に変換されます。空の値は に変換されNAます。

データをインポートした後に最初にすべきことは、そのデータを調べて、?str含まれているデータのクラスが期待どおりであることを確認することです。何度も間違えて数値フィールドに文字値を混ぜてしまい、数値ではなく係数になってしまいました。

注意すべきことの 1 つは、独自の NA 文字列を設定する必要がある場合があることです。たとえば、「-」、「.」、または空白を表すその他の文字がある場合は、na.strings引数 (文字列のベクトルを受け入れることができる)c("-",".")を使用する必要がありますread.csv

日付フィールドがある場合は、適切に変換する必要があります。R は、日付や時刻が何であるかを指定しない限り、必ずしも認識しません ( を参照?as.Date) 。

各列がどうなるかが事前にわかっている場合は、 を使用してクラスを指定できcolClassesます。

をよく読む?read.csvと、より詳細な情報が得られます。ただし、いくつかの一般的な問題の概要を説明しました。

于 2013-02-17T06:10:34.043 に答える