我正在运行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
'plant'对象属于“data.frame”类。这是提示错误的代码行之一:
write.table(plant, "file.txt", quote=F, sep="\t", row.names=T, col.names=F)
非常感谢任何有关解决此问题的帮助。
答案 0 :(得分:0)
尝试使用memory.limit()函数!
-
memory.limit(2000)
-