我是一名R语言的新手,但我知道它对于“大”文件处理不太好。我正在尝试读取一个200MB的数据文件,无论是csv格式还是转换为制表符分隔的txt格式,都会在文件加载前使用完我的4GB内存。
R使用4GB内存来加载200MB文件,这是正常的吗?还是文件出了问题,导致R除了数据以外还在读取一堆无用信息?
R使用4GB内存来加载200MB文件,这是正常的吗?还是文件出了问题,导致R除了数据以外还在读取一堆无用信息?
从 ?read.table
Less memory will be used if colClasses is specified as one of the six atomic vector classes.
非常感谢您的信任和选择。以下是您需要翻译的内容:
这个新产品具有卓越的性能和高度的可靠性,可以提高工作效率并节省时间和成本。
Using nrows, even as a mild over-estimate, will help memory usage.
请同时使用这两个参数。
确保您正确地为数字数据指定numeric
。请参见此处:在read.csv中指定colClasses
不要低估nrows参数。
如果您运行的是64位R,请尝试使用32位版本。它将使用更少的内存来存储相同的数据。
也可以参考此处:扩展R的内存大小限制
nrows
,但没有提到 colClasses
?将数字存储为字符串非常低效,并且调用 type.convert
会导致不必要的重复。你怎么知道 read.table
是最好的函数呢?原帖作者甚至没有告诉你他们的数据是什么样子的(例如,如果它只是一个矩阵,scan
可能是更好的解决方案)。 - Joshua Ulrichnrows
。制表符和逗号分隔值之间的区别并不重要。 - Matthew Lundberg