将大文件读入R

Oli*_*ver 4 csv ram r

我是R的新手,但我知道它在"大"文件上窒息.我正在尝试读取200MB的数据文件.我已经尝试过csv格式并将其转换为制表符分隔的txt,但在这两种情况下我都会在文件加载之前耗尽我的4GB RAM.

R会使用4GB或内存加载200MB文件是否正常,或者文件是否有问题导致R除了数据之外还会继续读取一堆虚无?

Mat*_*erg 10

?read.table

Less memory will be used if colClasses is specified as one of the six atomic vector classes.
Run Code Online (Sandbox Code Playgroud)

...

Using nrows, even as a mild over-estimate, will help memory usage.
Run Code Online (Sandbox Code Playgroud)

使用这两个参数.

确保正确指定numeric数字数据.请参见此处:在read.csv中指定colClasses

并且不要低估nrows.

如果您运行的是64位R,则可以尝试使用32位版本.它将使用更少的内存来保存相同的数据.

另请参见此处:扩展R中的内存大小限制

  • 你为什么提到`nrows`,而不是'colClasses`?将数字存储为字符串是非常低效的,并且调用`type.convert`会导致不必要的重复.你怎么知道`read.table`是最好用的功能?OP甚至没有告诉你他们的数据是什么样的(例如,如果它只是一个矩阵,`scan`可能是更好的解决方案). (4认同)