我正在尝试在R中加载3Gb csv文件,并收到以下警告:
警告讯息:
1:在扫描中(文件,什么,nmax,sep,dec,quote,skip,nlines,na.strings,: 达到7128Mb的总分配:请参阅help(memory.size)
2:在扫描中(文件,什么,nmax,sep,dec,quote,skip,nlines,na.strings,: 达到7128Mb的总分配:请参阅help(memory.size)
我试过这样做:
memory.size()
[1] 766.68
memory.limit()
[1] 7128
但我的文件仍然没有加载,我不断收到此警告。有没有办法在R中阅读这个文件?
谢谢!
答案 0 :(得分:1)
在加载大型数据集时,R的内存效率极低。来自documentation:
内存使用情况
这些功能在阅读时可能会占用大量内存 大文件。 “R数据”中有广泛的讨论 导入/导出'手册,补充说明。
如果将colClasses指定为六个中的一个,则将使用较少的内存 原子矢量类。阅读时尤其如此 带有许多不同数值的列,如存储每个值 作为字符串的不同值可能需要多达14倍 将内存存储为整数。
使用nrows,即使是温和的高估,也会有助于内存使用。
使用comment.char =“”将比read.table快得多 默认值。
read.table不是阅读大型矩阵的正确工具, 特别是那些有很多列的那些:它被设计用于读取数据帧 它可能包含非常不同类别的列。请改用扫描 矩阵。