我对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循环中无法正常工作。这是正确的还是有任何其他可能的问题,即有几个迭代后我的记忆已满的原因?