Sto cercando di eseguire un semplice programma per estrarre tabelle dal codice html. Tuttavia, sembra esserci un problema di memoria con readHTMLTable nel pacchetto XML. C'è un modo per aggirare questo facilmente. Come in qualche modo specificando una memoria speciale per questo comando e quindi liberandolo manualmente.Soluzione alternativa alla perdita di memoria R con pacchetto XML
Ho provato a mettere questo in una funzione e ho provato a utilizzare gc() e diverse versioni di R e questo pacchetto e nulla sembra funzionare. Inizio a disperarmi.
Codice di esempio. Come eseguirlo senza esplodere la dimensione della memoria?
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
while(TRUE) {
b = readHTMLTable(a)
#do something with b
}
Edit: Qualcosa di simile avviene ancora tutta la mia memoria:
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
f <- function(x) {
b = readHTMLTable(x)
rm(x)
gc()
return(b)
}
for(i in 1:100) {
d = f(a)
rm(d)
gc()
}
rm(list=ls())
gc()
Sto usando vincere 7 e provato con 32bit e 64bit.
Ho avuto seri problemi di memoria usando il pacchetto 'XML' su Windows. La mia soluzione è di riavviare periodicamente R (salvando i dati in CSV). Ho mandato un'email all'autore del pacchetto. Ci siamo scambiati alcune e-mail, ma in pratica ha detto che non può/non esegue il debug di Windows. – rrs
Ok. Riavviare R funziona ma non è un lavoro manuale così carino da fare ogni 5 minuti. Immagino che la sola strada da percorrere sia passare a Linux. XML è un pacchetto molto interessante ma purtroppo distrutto da questi problemi di memoria. – Pekka