Frage

Ich habe in letzter Zeit auf große Datensätze gearbeitet (mehr als 400 Tausend Linien). Bisher habe ich XTS-Format eingesetzt haben, der gut funktioniert für „kleine“ Datensätze von wenigen Zehntel Tausende Elemente.

Nun, da das Projekt wächst, R einfach stürzt ab, wenn die Daten für die Datenbank abrufen und in die XTS setzen.

Es ist mein Verständnis, dass R sollte in der Lage sein haben Vektoren mit einer Größe von bis zu 2 ^ 32-1 Elementen (oder 2 ^ 64-1 die die Version nach). Daher kam ich zu dem Schluss, dass XTS vielleicht einige Einschränkungen, aber ich konnte die Antwort in dem doc nicht finden. (Vielleicht war ich ein bisschen übermütig über mein Verständnis von theoretisch möglichen Vektorgröße).

Um es zusammenzufassen, würde Ich mag wissen, ob:

  1. XTS hat in der Tat eine Größenbeschränkung
  2. Was denken Sie ist der klügste Weg, um große Zeitreihen zu behandeln? (Ich war über Splitting denken die Analyse in mehrere kleinere Datensätze).
  3. Ich habe nicht eine Fehlermeldung erhalten, schaltet R einfach automatisch ab. Ist das ein bekanntes Verhalten?

SOLUTION

  1. die gleiche wie R, und es hängt von der Art des verwendeten Speichers (64 Bit, 32 Bit). Es ist ohnehin extrem groß.
  2. Daten Chuncking ist in der Tat eine gute Idee, aber es ist nicht erforderlich.
  3. Dieses Problem kam von einem Fehler in R 2.11.0, die in R 2.11.1 gelöst wurde . Es gab ein Problem mit langen Daten Vektor (hier die Indizes der XTS).
War es hilfreich?

Lösung

In Bezug auf Ihre beiden Fragen, mein $ 0,02:

  1. Ja, es gibt eine Grenze von 2 ^ 32-1 Elementen für R Vektoren. Dies ergibt sich aus der Indizierungslogik, und das sitzt angeblich ‚tief‘ genug in R, dass es unwahrscheinlich ist, bald ersetzt werden (wie es so viel vorhandenen Code beeinflussen würde). Google ist die r-devel Liste für Details; dies hat vor kommen. Das xts Paket keine zusätzliche Beschränkung erfolgen.

  2. Ja, Splitting Dinge in Stücke, die überschaubar sind, ist der cleverste Ansatz. Früher habe ich die Sätze auf große Daten zu tun, wenn ich jetzt 64-Bit-R ausschließlich mit 32-Bit-Versionen von R. ich mit der Arbeit verwenden und nicht mehr dieses Problem haben (und / oder halten meine Datensätze Sane),

Es gibt einige ‚out-of-memory‘ -Ansätze, aber ich würde zuerst versuchen, das Problem und bekräftigen zu überdenken, dass Sie wirklich brauchen, um alle 400k Zeilen auf einmal.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top