在使用R中的MICE时遇到内存不足的问题

6

我正在尝试使用MICE包在R中创建多个插补,但是总是出现内存不足的问题。

以下是错误信息:

Error: cannot allocate vector of size 219 Kb
In addition: Warning messages:
1: In unlist(vlist, recursive = FALSE, use.names = FALSE) :
  Reached total allocation of 6500Mb: see help(memory.size)
2: In unlist(vlist, recursive = FALSE, use.names = FALSE) :
  Reached total allocation of 6500Mb: see help(memory.size)  

我使用64位R和Windows 7以及8GB的内存。我尝试增加物理内存和允许R使用的内存大小分别为8GB和6.5GB,但仍然无法工作。目前我正在尝试对一个包含27,000行和17列数据集进行输入,但我希望在一个更大的包含1,600,000行和17列的数据上使用。能有人帮助我吗?非常感谢。/ Jesper

上一次我尝试时,填充过程会占用大量内存。你能否尝试在较小的数据集上进行?你还可以从任务管理器中跟踪内存使用情况,并检查它随时间的增加情况。 - Nishanth
您可以使用像 ffsnow 这样的程序包来降低内存使用。或者尝试使用 R 中的并行编程程序包,这将使您能够使用多个核心。R 的默认使用方式是使用 1 个核心。 - Sander Van der Zeeuw
我减少了数据框中的预测变量和列数,这使得我可以处理足够大的数据集。也许我会尝试一下ff包。非常感谢!R用户总是那么乐于助人 :) - user2322780
1个回答

0

要检查当前内存限制(以Mb为单位),请尝试以下操作

memory.limit(size = NA)

为了最大化它(相对于你的8Gb RAM),尝试:
memory.limit(size = 8190)

此外,在运行任何内存密集型函数之前,不要忘记调用gc()几次。如果仍然无法解决问题,请确保关闭任何其他活动应用程序,重新启动R并执行上述操作。如果这不能解决您的问题,请尝试利用其他软件包的功能,如ffsnowbigmemory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接