我有以下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()来增加内存大小,但它仍然无法正常工作.有人可以帮帮我吗
我不认为这应该是一个答案,但我似乎无法对你的问题发表评论(我的代表太低了吗?):
我确定你已经检查了内存管理的所有明显问题:
通过使用数字,您是否能够确定不再能够分配内存的限制?每次都是一样的,或者当你开始/杀死其他进程(即使用不同的内存量)时它是否会改变?
编辑:参见R内存管理/不能分配大小为n Mb的向量