某个循环中的write.table永远不会释放内存

时间:2012-06-21 22:56:14

标签: r file-io

考虑这两段代码。在第一个,事情正常,R的内存使用是稳定的:

for (i in 1:100) {
x <- rnorm(1000000)
write.table(x, file="test", col.names=F, append=T)
}

现在考虑这个相关的代码,我正在从世界银行那里获取有关某些经济指标的信息。这里,内存使用量随着循环的迭代而增加:

library(RCurl)
library(XML)
for (i in 1:26) {
x <- getURL(paste("http://api.worldbank.org/countries/all/indicators/AG.AGR.TRAC.NO?per_page=500&date=1960:2012&page=", as.character(i), sep=""))
x <- xmlToDataFrame(x)
write.table(x, file="test", col.names=F, append=T)
}

从编写数据的角度来看,这两个片段之间有什么区别,如何确保第二个片段正确释放内存?

1 个答案:

答案 0 :(得分:0)

好的,我这样做是为了让它发挥作用。我从http://www.omegahat.org/R/bin/windows/contrib/2.14/下载了二进制文件,并使用install.packages(“XML”,repos = NULL)进行安装。它只能在32位R中工作。