【发布时间】:2018-06-17 08:26:47
【问题描述】:
我在 Windows 7 64 位上运行 R 64 位。在运行我的脚本时,我收到一条错误消息,无法分配大小为 x 的向量(在我的情况下约为 200MB)。我的 data.frame 有大约 200.000 行,而不是更多。怎么会没有足够的存储空间来分配另一个向量呢? 我知道该操作本身可以工作,因为脚本通过一个较小的子集文件运行。
我也知道以前有人问过这个问题,但没有一个答案能解决我的问题。有很多不同的答案——哪一个是正确的?是和系统的RAM有关还是和R的内存有关?
我手动增加了内存大小:
memory.limit()
# set max memory usage is 2G
memory.size(max=10000)
然后 r 表示内存限制为 10.000
memory.limit()
[1] 10000
但仍然有同样的错误。甚至是相同大小的vector无法分配。
我清理了我的电脑并在我的驱动器上设置了更多可用空间。但它也不会改变任何东西。
取决于内存大小以及如何增加它?
【问题讨论】:
-
您能提供一个example that reproduces the problem 吗?这也可能与您编写代码的方式有关。
-
您进行的其中一项计算需要大量内存。内存需求会随着数据大小呈二次方甚至更差。如果没有在可重现的示例中显示您的代码,则没有太多建议可以提供。您可以随着数据大小的增加分析内存需求,并预测整个数据集的需求。
-
好的,感谢您的简短解释。有时一些背景信息就足够了。我将尝试拆分代码并摆脱一些垃圾。
标签: r memory memory-management