错误:无法在R中分配大小为X Mb的向量

时间:2015-08-03 06:53:49

标签: r memory garbage-collection

我对R中的内存使用有疑问。我在for循环中在R中的整个数据库上运行Rcode。但是,代码在某些时候停止说它不能分配大小为325.7 mb的向量。当我看着任务管理器时,我发现它在我们的服务器上使用了28GB的RAM。

我熟悉R中的gc()函数,但这似乎不起作用。例如。代码在第15次迭代时停止工作,说它无法分配向量。但是,如果我只运行第15次迭代(没有别的),则根本没有问题。此外,对于每次新的迭代,我删除了我的DT,这是我环境中最大的对象。

代码示例:

DT <- data.table() 
items <- as.character(seq(1:10)) 
for (i in items){ 
  DT <- sample(x = 5000,replace = T) 
  write.csv(DT,paste0(i,".csv")) 
  gc() 
  rm(DT) 
} 

我觉得这个gc函数在for循环中无法正常工作。这是正确的还是有任何其他可能的问题,即有几个迭代后我的记忆已满的原因?

0 个答案:

没有答案