1

サイズが約1Gbのファイルを処理するためにRを実行し、それをいくつかの小さなファイルにフィルタリングしてから、それらを印刷しようとしています。プロセス全体のさまざまな時点で、次のようなエラーが発生します。

**Error: cannot allocate vector of size 79.4 Mb**

このサイズのベクトルは、私が /すべき/ 使用するメモリの量を考慮すると、問題にならないはずです。私のマシンには 24Gb のメモリがあり、これらの大きなオブジェクトを含む R 環境が稼働している場合でも、その大部分はまだ空いており、上記のエラーが表示されます。

free -m
             total       used       free     shared    buffers     cached
Mem:         24213       2134      22079          0         55        965
-/+ buffers/cache:       1113      23100
Swap:        32705          0      32705

gc() に対する R の応答は次のとおりです。

corner      used   (Mb) gc trigger   (Mb)  max used   (Mb)
Ncells    673097   18.0    1073225   28.7    956062   25.6
Vcells 182223974 1390.3  195242849 1489.6 182848399 1395.1

私はUbuntu 12.04.1 LTSで作業しています

私が使用しているマシンのスペックは次のとおりです。

i7-3930K 3.20 GHz Hexa-core (6 Core)12MB Cache
ASUS P9X79 s2011 DDR3-1333MHZ,1600 upto 64GB
32GB DDR3 ( 8x4GB Module )
128GB SSD drive
Asus nVidia 2GB GTX660 TI-DC2O-2GD5 GeForce GTX 660 Ti i

これは、ファイルに書き込もうとしているオブジェクトです:

dim(plant)
[1] 10409404       13

「植物」オブジェクトはクラス「data.frame」です。エラーを表示するコード行の 1 つを次に示します。

write.table(plant, "file.txt", quote=F, sep="\t", row.names=T, col.names=F)

この問題を解決するための助けをいただければ幸いです。

4

1 に答える 1

0

memory.limit() 関数でトライ!

-
memory.limit(2000)
-
于 2013-06-05T14:38:35.807 に答える