我正在尝试将一个大的(~700Mb).csv 文件读入 R。
该文件包含一个小于 256 的整数数组,带有一个标题行和 2 个标题列。
我用:
trainSet <- read.csv(trainFileName)
这最终与:
Loading Data...
R(2760) malloc: *** mmap(size=151552) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
R(2760) malloc: *** mmap(size=151552) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Error: cannot allocate vector of size 145 Kb
Execution halted
查看内存使用情况,它在崩溃时页面文件使用量为零的 6Gb 机器上的使用量约为 3Gb,因此可能有另一种方法来修复它。
如果我使用:
trainSet <- read.csv(trainFileName, header=TRUE, nrows=100)
classes = sapply(train,class);
我可以看到所有列都被加载为我认为是 32 位的“整数”。
显然,使用 3Gb 加载 700Mb .csv 文件的一部分远非高效。我想知道是否有办法告诉 R 为列使用 8 位数字?这是我过去在 Matlab 中所做的,它很有效,但是,我似乎在任何地方都找不到提到 R 中的 8 位类型。
它存在吗?我如何告诉它 read.csv 使用它?
提前感谢您的帮助。