2

すでに 16m 行の data.frame に 1 か月分のデータ (200k) 行を追加しようとしていますが、システムの R メモリ制限に達しています。

d = rbind(d, n)
Error: cannot allocate vector of size 60.8 Mb
In addition: Warning messages:
1: In rbind(deparse.level, ...) :
  Reached total allocation of 8072Mb: see help(memory.size)

memory.sizememory.maxそれぞれ 2187.88 と 8072と報告されているので、8 GB のシステム メモリをすべて使用していると思います。この質問で JD Longによって詳述されているオブジェクト メモリ レポート機能を使用すると、次のレポートが得られます。

            Type          Size     Rows Columns
d     data.table 2,231,877,576 15941535      26
files  character           912       13      NA
i        numeric            48        1      NA
n     data.frame    28,176,000   213116      26

発生しているように見えてメモリを消費しているように見える明らかなオブジェクトの重複を伴​​わない data.frame に追加する別の方法はありますか? データをすばやく読み込むために.RData保存オブジェクトを使用しているため、csvファイルへの追加は避けたいと思っています。

4

1 に答える 1

3

data.tableオブジェクトを使用している場合は、 を使用rbindlistして不要なコピーを作成しないようにする必要がありますdata.table。これはうまくいくはずです...

d = rbindlist(d, n)
于 2013-10-11T10:44:57.463 に答える