尽管是64位版本,但无法在R中分配向量

时间:2012-01-19 03:37:17

标签: r

我正在尝试在R中执行dcast以生成another question I asked

中显示的矩阵

然而,我收到一个错误:

  

错误:无法分配大小为2.8Gb的矢量。

我的桌面有8GB的RAM,我正在运行ubuntu 11.10 64位版本。我可能使用了错误的R版本吗?我怎么知道,有没有办法在运行R时确定它?我当然必须有足够的空间来分配这个载体。

1 个答案:

答案 0 :(得分:9)

错误消息表示R需要分配另一个 2.8Gb内存来完成您尝试执行的任何操作。这并不意味着它需要分配2.8Gb的最大值。在运行该R代码的同时在shell中运行top并观察R如何占用内存,直到它划分出额外的2.8Gb地址空间不可用的点。

盒子上有一个大的交换空间吗?我可以很容易地看到你正在做的事情是如何使用所有8Gb的RAM加上你所有的交换空间,所以没有其他地方可以让R获得内存空间,从而抛出错误。

也许您可以尝试以块的形式进行dcast,或者尝试使用替代方法而不是使用dcast。如果您需要帮助,请发布另一个Q.