【问题标题】:How to fix "Error: cannot allocate vector of size 265.6 Mb"如何修复“错误:无法分配大小为 265.6 Mb 的向量”
【发布时间】:2020-05-25 21:16:33
【问题描述】:

我有一个非常大的数据框列表(300 个数据框,每个有 2 列和 300~600 行),我想将它们全部加入

final <- subset %>% reduce(full_join, by = "Frame_times")

但是,当我尝试执行此操作时,出现以下错误:

Error: cannot allocate vector of size 265.6 Mb"

我在 64 位 Windows 10 上运行,并安装了最新的 64 位 R (4.0.0)。 我有 8GB 的​​ RAM,并且

> memory.limit()
[1] 7974
> memory.size(max = TRUE)
[1] 7939.94

我也试过 gc() 功能,但没有帮助。

看来我有足够的空间和内存来运行它,为什么会出现这个错误? 我该如何解决?

非常感谢!

【问题讨论】:

    标签: r memory error-handling limit


    【解决方案1】:

    您的内存快用完了。故障排除的第一步可能是首先在较小的数据帧子集(例如 3)上运行此代码。结果(特别是行数)是否符合您的预期?如果是,并且它确实在做正确的事情,那么分批进行(比如 5 批,每批 100 个)可能会有所帮助。听起来最有可能的情况是,由于某种原因,行数或列数激增到比您预期的要大得多。

    错误中提到的266Mb只是最后一根稻草;不是您正在使用的总内存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 2015-10-25
      • 2019-04-04
      相关资源
      最近更新 更多