1

我正在运行 R 来处理一个大小约为 1Gb 的文件,将其过滤成几个较小的文件,然后尝试将它们打印出来。在整个过程中,我在不同的地方遇到了这样的错误:

**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

这是 R 对 gc() 的回应:

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”类。这是提示错误的代码行之一:

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 回答