Ich habe eine 700mb .dta Stata mit 28 Millionen Beobachtungen und 14 Spaltenvariablenmemisc mit Stata importieren .dta in R-Datei
Wenn ich laufe ich Datei versuchen zu importieren in R mit foreign's read.dta() Funktion aus meinem Arbeitsspeicher auf meinem 8-GB-Rechner (Seitenausfälle schießen sehr schnell in GBs).
staph <- read.dta("Staph_1999_2010.dta")
Ich suchte herum und es klingt wie eine effizientere Alternative, um die Stata.file() Funktion aus dem memisc package zu verwenden wäre.
Als ich nennen:
staph <- Stata.file("Staph_1999_2010.dta")
ich segfault erhalten:
*** caught segfault ***
address 0xd5d2b920, cause 'memory not mapped'
Traceback:
1: .Call("dta_read_labels", bf, lbllen, padding)
2: dta.read.labels(bf, len.lbl, 3)
3: get.dictionary.dta(dta)
4: Stata.file("Staph_1999_2010.dta")
finde ich die Dokumentation für Stata.file() schwer zu folgen.
(1) Verwende ich Stata.file()
richtig?
(2) Liefert Stata.file()
einen Datenrahmen wie read.dta() zurück?
(3) Wenn ich Stata.file()
richtig verwende, wie kann ich den Fehler beheben, den ich bekomme?
kauft mehr Speicher zu halten. Die übliche Faustregel ist, dass Sie dreimal so viel Speicher benötigen wie Ihr größtes Objekt, also 28 * 14 * 10 * 3 = 11760, also sollten Sie wahrscheinlich 16 GB für produktiven Wok mit einem Objekt dieser Größe haben (angesichts der Notwendigkeit von Systemen) Speicher, der wahrscheinlich mehrere Gigs aufnehmen wird –
danke, ich werde diese Optionen in Betracht ziehen, aber würde gerne herausfinden, wie Stata.file() – ptjetty
ich auch segfault, wenn ich eine 100mb dta Datei verwenden – ptjetty