Ich versuche, ein einfaches Programm auszuführen, um Tabellen aus HTML-Code zu extrahieren. Es scheint jedoch ein Speicherproblem mit readHTMLTable im XML-Paket zu geben. Gibt es irgendeine Möglichkeit, dass ich einfach so umgehen könnte? Als würde man irgendwie einen speziellen Speicher für diesen Befehl angeben und ihn dann manuell freigeben.Problemumgehung zu R Speicherverlust mit XML-Paket
Ich habe versucht, dies in eine Funktion zu setzen und versuchte, gc() und verschiedene Versionen von R und dieses Paket und nichts scheint zu funktionieren. Ich fange an verzweifelt zu werden.
Beispielcode. Wie führe ich das aus, ohne die Speichergröße zu explodieren?
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
while(TRUE) {
b = readHTMLTable(a)
#do something with b
}
Edit: So etwas wie dies noch alle meine Erinnerung nimmt:
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()
Ich verwende mit 32-Bit und 64-Bit-win 7 und versuchte.
Ich hatte ernsthafte Speicherprobleme mit dem XML-Paket unter Windows. Meine Lösung besteht darin, R regelmäßig neu zu starten (die Daten werden in CSV gespeichert). Ich habe dem Paketautor eine E-Mail geschickt. Wir tauschten einige E-Mails aus, aber er sagte im Grunde, er könne Windows nicht debuggen. – rrs
Ok. Neustarten von R funktioniert, aber es ist nicht so schön, manuelle Arbeit, um alle 5min zu tun. Ich denke, es ist nur ein Weg zu wechseln zu Linux wechseln. XML ist ein sehr cooles Paket, aber leider mit diesen Speicherproblemen zerstört. – Pekka