R错误:无法分配大小为366.6 MB的向量

use*_*530 0 optimization r

我有以下for循环

for( i in 1:No_Simulations) {
      Vec =   rowSums(  sweep(Matrix1,MARGIN=2,Matrix2[i,],`*`)  )
      if( i == 1 ) {  Result <- Vec } else {   Result = cbind(  Result , Vec )  } }
Run Code Online (Sandbox Code Playgroud)

其中No_Simulations = 10000且Matrix2的dim为10000 100,Matrix1的dim也为10000 100.

我无法运行这部分代码,因为R编译器给我以下错误:"不可能的所有un vecteur de taille 366.6 Mo"

即无法分配大小为366.6 MB的向量.我也尝试使用memory.limit()来增加内存大小,但它仍然无法正常工作.有人可以帮帮我吗

im *_*sed 6

我不认为这应该是一个答案,但我似乎无法对你的问题发表评论(我的代表太低了吗?):

我确定你已经检查了内存管理的所有明显问题:

  • 确保您在物理上有足够的内存来分配
  • 确保您的进程总数低于PROCESS可寻址限制(现在只有32位真正的问题)
  • 确保有足够的内存可以分配您请求的大小的连续块.记忆片段.

通过使用数字,您是否能够确定不再能够分配内存的限制?每次都是一样的,或者当你开始/杀死其他进程(即使用不同的内存量)时它是否会改变?

编辑:参见R内存管理/不能分配大小为n Mb的向量