如何解决 "错误:无法分配大小为265.6 Mb的向量"

问题描述 投票:0回答:1

我有一个非常大的数据框列表(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的内存,并且

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

我也尝试过 gc() 函数,但它没有帮助。

看来我有足够的空间和内存来运行这个功能,那么为什么我会出现这个错误呢? 我怎么才能解决这个问题呢?

非常感谢您

r memory error-handling limit
1个回答
0
投票

你的内存快用完了。排除故障的第一步可能是先在一个较小的数据帧子集上运行这段代码(比如,3个)。结果(特别是行数)是否和你预期的一样?如果是,而且它真的做了正确的事情,那么分批进行可能会有帮助(比如5批100个)。听起来,大部分可能的情况是,由于某种原因,行数或列数被吹到了一个比你期望的更大的数字。

错误中提到的266Mb只是最后的稻草,而不是你使用的总内存。

© www.soinside.com 2019 - 2024. All rights reserved.