我正在尝试在R中执行dcast以生成another question I asked
中显示的矩阵然而,我收到一个错误:
错误:无法分配大小为2.8Gb的矢量。
我的桌面有8GB的RAM,我正在运行ubuntu 11.10 64位版本。我可能使用了错误的R版本吗?我怎么知道,有没有办法在运行R时确定它?我当然必须有足够的空间来分配这个载体。
答案 0 :(得分:9)
错误消息表示R需要分配另一个 2.8Gb内存来完成您尝试执行的任何操作。这并不意味着它需要分配2.8Gb的最大值。在运行该R代码的同时在shell中运行top
并观察R如何占用内存,直到它划分出额外的2.8Gb地址空间不可用的点。
盒子上有一个大的交换空间吗?我可以很容易地看到你正在做的事情是如何使用所有8Gb的RAM加上你所有的交换空间,所以没有其他地方可以让R获得内存空间,从而抛出错误。
也许您可以尝试以块的形式进行dcast,或者尝试使用替代方法而不是使用dcast。如果您需要帮助,请发布另一个Q.