2012-06-21 3 views
0

이 두 가지 코드를 고려하십시오. 처음에 상황이 정상적으로 동작하고, R의 메모리 사용은 안정 : 특정 루프의 write.table은 메모리를 해제하지 않습니다.

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

가 지금은 일부 경제 지표에 대한 세계 은행 (World Bank)에서 정보를 긁어하고이 관련 코드를 고려하십시오. 여기서, 메모리 사용량은 루프가 반복 될 때까지 진행됩니다

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

My R은 버전 2.15이고 XML은 최신 업데이트 인 것으로 보이는 3.9-4.1 버전입니다. – qua

+0

windows가 내가 실행하고있는 것입니다 – qua

+0

소스 코드를 다운로드하고 Rtools를 사용하여 XML 버전 3.93-0으로 업데이트하려고했지만 아무 소용이 없습니다. 또한 omegahat.org의 저장소를 통해 다운로드하면 작동하지 않습니다 – qua

답변

0

좋아, 나는 그것을 작동하게 만들었다. http://www.omegahat.org/R/bin/windows/contrib/2.14/에서 이진 파일을 다운로드하고 install.packages ("XML", repos = NULL)를 사용하여 설치했습니다. 그것은 32 비트 R에서만 작동했습니다.

관련 문제