【发布时间】:2019-10-13 20:37:51
【问题描述】:
我在 r 中使用 2 个数据帧,当我尝试合并它们时出现错误:错误:无法分配大小为 565.3 Mb 的向量
如果我检查:memory.limit()
memory.limit() [1] 1.759219e+13
我的电脑 8GB 内存。
我可以做些什么来解决这个问题??
【问题讨论】:
-
您确定您正确指定了要加入的列吗?如果您想要加入的列中有重复数据,则数据可能会很快增长得非常大。
我在 r 中使用 2 个数据帧,当我尝试合并它们时出现错误:错误:无法分配大小为 565.3 Mb 的向量
如果我检查:memory.limit()
memory.limit() [1] 1.759219e+13
我的电脑 8GB 内存。
我可以做些什么来解决这个问题??
【问题讨论】:
如果您需要在 R 中合并大型数据框,一个不错的选择是分块进行,例如 10000 行。如果您要合并数据帧 x 和 y,则循环 10000 行 x 片段,与 y 合并(或者更确切地说使用 plyr::join)并立即将这些结果附加到一个单独的 csv 文件中。将所有片段合并并写入文件后,读取该 csv 文件。通过正确使用逻辑索引向量和正确放置的 rm 和 gc 调用,这非常节省内存。不过速度并不快。
【讨论】: