加载大于8GB的大型数据集后,R运行非常缓慢

时间:2019-03-19 15:45:12

标签: r memory import

鉴于数据集加载后运行速度有多慢,我一直无法在R中工作。这些数据集总计约8GB。我正在8GB RAM上运行,并且已调整memory.limit以超过我的RAM,但似乎没有任何作用。另外,我使用了fread包中的data.table来读取这些文件;仅仅是因为read.table无法运行。

在论坛上看到针对同一问题的类似帖子后,我尝试运行gctorture(),但无济于事。

R运行如此缓慢,以至于我什至无法检查自己上传的数据集列表的长度,无法View或上传这些数据集后进行任何基本操作。

我尝试将数据集以“片段”的形式上传,因此总文件的1/3超过3倍,这似乎使导入部分的运行更加顺畅,但对于R的运行速度却没有任何改变在此之后运行。

有什么办法可以解决这个问题?任何帮助将不胜感激。

谢谢大家的时间。

1 个答案:

答案 0 :(得分:2)

出现问题是因为R将整个数据集加载到RAM中,这在尝试View数据时主要导致系统停止运行。

如果这是一个非常庞大的数据集,请首先确保数据仅包含最重要的列和行。可以通过您对问题拥有的领域和世界知识来识别有效的列。您也可以尝试消除缺少值的行。

完成此操作后,根据您的数据大小,您可以尝试其他方法。一种是通过使用bigmemoryff之类的包。例如,bigmemory创建一个指针对象,您可以使用该对象从磁盘读取数据而无需将其加载到内存中。

另一种方法是通过并行(隐式或显式)。 MapReduce是另一个软件包,对于处理大型数据集非常有用。

有关这些的更多信息,请查看this关于rpubs的博客文章和this来自SO的旧但黄金文章。