【发布时间】:2023-03-15 19:56:01
【问题描述】:
我正在尝试合并两个数据框:一个有 33 个变量的 908450 个观察值,另一个有 2 个变量的 908450 个观察值。
dataframe2 <-merge(dataframe1, dataframe2, by="id")
我已经从工作内存中清除了所有其他数据帧,并使用以下代码重置了我的内存限制(对于具有 24 GB RAM 的全新桌面):
memory.limit(24576)
但是,我仍然收到错误 Cannot allocate vector of size 173.Mb。
关于如何解决这个问题的任何想法?
【问题讨论】:
-
package
data.table可以比data.frames更节省内存并且速度更快,因为它生成的数据副本更少。 -
您实际使用的是 24 Gb,以及相关的,您的操作系统是 64 位吗?
-
操作系统必须能够为 R 分配所需数量的连续内存。因此您可能会受到正在运行的其他应用程序的限制。
-
@詹姆斯宾果。请注意,这不是 R 特有的问题,因为 Stata 文档建议在尝试大合并之前重新启动计算机。也就是说,
data.table绝对是获得这么大数据集的方法。
标签: r memory memory-management dataframe