我有一个有9列的数据框(x),它有数百万行。我成功地将它读入R中,对其进行了一些修改,并且代码可以正常执行。然而,当我尝试使用“write”函数将其写入一个.csv文件时,出现了问题。
write.csv(x,file=argv[2],quote=F,row.names=F)
I get an error which says
Error: cannot allocate vector of size 1.2Gb
这没有意义,因为数据已经在内存中,计算也完成了,我只想将其写入磁盘。同时,在我监测内存时,虚拟内存大小在此写入阶段几乎增加了一倍。编写一个自定义的C函数来写出这个数据框是否有帮助?任何建议/帮助/指针都将不胜感激。
附:我在一个内存大约为24G的64位Ubuntu机器上运行所有这些操作。总体空间可能不是问题。数据大小约为10G。
append = TRUE
将其分成小块写入文件。另外,您计算机上安装的总RAM容量可能会误导您是否会遇到内存问题,因为R经常需要特定大小的连续内存块。即使有24GB的内存,有时也可能难以找到10GB连续内存块。 - jorangc()
,但它不太可能有太大帮助。 - Ari B. Friedman