在 R 中读取大型 csv 文件

Posted

技术标签:

【中文标题】在 R 中读取大型 csv 文件【英文标题】:Read large csv file in R 【发布时间】:2015-06-17 06:06:40 【问题描述】:

您想告诉我如何读取 3 gb 的 csv 文件,因为当我尝试使用 read.csv 读取时,我偶然发现了这个错误“错误:无法分配大小为 250.0 Mb 的向量”。我的机器是 i5 4 gb ram Win 7 32 位。此外,我尝试使用 ff 包打开它,我再次遇到错误,我应该使用 64 位版本的 R 才能读取 csv 文件以及我需要更多的内存来读取它。我是否应该考虑使用扫描功能。我尝试使用扫描功能,但我想在我的代码中使用 skip = 4 和 nlines = 2,当我尝试使用它时,我只读取了我的数据的第一行。

【问题讨论】:

包ff 或bigmemory 可能会感兴趣。但是,RAM 很便宜,而且 64 位系统也很实惠。如果您需要定期处理这种大小的数据,您应该选择该选项。 我尝试使用扫描来读取文件,但我再次遇到问题“错误:无法分配大小为 250.0 Mb 的向量”。怎么办? 【参考方案1】:

R 完全在内存 (RAM) 中运行,因此一旦可用空间用完,read.csv 操作就会失败。要解决此问题,您可以尝试增加可用内存量:

memory.limit(size=8097)   # allocate 8097 MB = 8 GB for R to use

您需要 64 位版本的 R 才能利用这一点。您可能需要将内存增加到 8 GB 以上才能使您的操作正常运行。

【讨论】:

【参考方案2】:

如果您尝试使用当前的内存管理方法完成需要太多随机存取内存的分析,那么我建议调整您的分析以利用虚拟内存只要您有硬盘可用空间。

【讨论】:

虚拟内存很慢,尤其是在您不使用 SSD 的情况下。

以上是关于在 R 中读取大型 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中读取大型数据集 [重复]

怎样用matlab读取csv文件

在 JavaScript 前端应用程序上读取大型 CSV 文件

macmatlab导入大型csv

读取大型 csv 文件、python、pandas 的随机行

R中的流处理大型csv文件