2016-08-09 14 views
1

私はRでの3Gbのcsvファイルをロードしようとしていますし、私は次の警告取得:Rのメモリを増やすには?

警告メッセージ:

1:スキャン(ファイル、何を、nmaxと、9月、12月、引用、スキップ、Inを(file、what、nmax、sep、dec、quote、skip、nlines、na.strings、0、0、0、0、0、0、0、0、 : 総割り当ては7128Mbに達しました:help(memory.size)を参照

私はこれをやってみました:

memory.size()

[1] 766.68

memory.limit()

[1] 7128

しかし、それでもまだ、私のファイルロードされず、この警告が表示され続けます。私はこのファイルをRで読むことができますか?

ありがとうございました!

+1

私はこれまで、人々が以前に 'fread()'を勧めているのを見てきました。 また、ガベージコレクションが行われていない場合は、 'gc()'がエラーを助けるかもしれません。 – zacdav

+1

@ zacdav ..ありがとうございました:)私は> install.packages( "data.table") >ライブラリ(data.table)> fread( "file。 – Sweta

+0

最高の部分は、2.980 GBのファイルから_Read 74180464行と11(of 11)列の時間が00:08:34_ – Sweta

答えて

1

大規模なデータセットをロードするとき、Rは非常にメモリ非効率です。 documentationから: 大きなファイルを読み込むとき

メモリ使用量

これらの機能は、メモリの意外な量を使用することができます。 「Rデータ インポート/エクスポート」マニュアルには、ここでの補足として幅広い議論があります。

アトムベクタークラスの1つとしてcolClassesが指定されている場合は、メモリがより少なくなります。これは特に、多くの異なる数値を取る 列を読み取るときに、 の別個の値を文字列として格納すると、それが整数として格納されるメモリの最大14倍を取ることができるためです。

軽度のオーバー見積もりでも、nrowsを使用するとメモリ使用量が増えます。

comment.char = ""を使用すると、read.tableよりもかなり速くなります。 デフォルトです。

read.tableを、多くの列を持つ 特に、大きな行列を読み取るための適切なツールではありません。非常に異なるクラスの列を有することができるデータフレーム を読み取るように設計されています。代わりに 行列に対してスキャンを使用してください。

関連する問題