2012-06-21 62 views
0

考慮這兩個代碼段。在第一個,事情都運轉正常,和R的內存使用穩定:write.table在某個循環中永遠不會釋放內存

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) 
} 

是什麼但從寫入數據的點這兩個片段之間的區別,以及如何確保第二個釋放內存是否正常?

+0

我的R是版本2.15,我的XML是版本3.9-4.1,這似乎是最新的更新。 – qua

+0

窗口是我正在運行 – qua

+0

我試圖通過下載源代碼和使用Rtools更新到XML版本3.93-0,但無濟於事。也可以通過omegahat.org的倉庫下載 – qua

回答