2013-03-09 6 views
8

Was ist das beste Format, um einfache Datenrahmen in R für die Speicherung auf Festplatte zu halten und gleichzeitig den semantischen Verlust zu begrenzen?Welches ist das beste Format zum Speichern von Datenrahmen auf Datenträger in R für die Speicherung?

Ich frage, weil ich einen Datensatz archiviere. In einer idealen Welt würde mein Datenformat die folgen Merkmale aufweist:

  1. Stabilität - das Speicherformat wird mit zukünftigen Versionen von R
  2. Semantische Kompatibilität kompatibel sein - das Speicherformat wird die Semantik von R primitiver Daten verstehen Arten. Zum Beispiel wird es in der Lage sein, geordnete Faktoren mit Etiketten in einer vernünftigen Weise zu speichern.
  3. Offene Standard - im Idealfall, das Format wird ein offener Standard, so dass andere Statistik-Pakete (jetzt oder in der Zukunft) werden es

Mein erster Gedanke CSV zu verwenden war zu verstehen, die Lage sein, die sehr stabil ist, aber es fehlt der erforderliche semantische Reichtum. Auf der anderen Seite erfasst Rs eingebautes RData-Format vollständig die Semantik von R, scheint sich aber wahrscheinlich zwischen den Releases zu ändern (korrigiere mich, wenn ich falsch liege).

Gibt es ein anderes Format, das eine Balance zwischen diesen drei Imperativen findet?

+0

Werden Ihre Daten von einem anderen Programm als R geöffnet oder bearbeitet? und '' save 'erwähnen, dass' Jede neuere Version von R kann komprimierte Datei speichern 'lesen, so dass ich bezweifle, dass .Rdata Format zwischen den Releases wechseln kann. – agstudy

+1

Vielleicht verwenden Sie [XML] (http://Stackoverflow.com/q/6256064/602276) oder [JSON] (http://Stackoverflow.com/q/3600431/602276) – Andrie

+1

Ich denke, [YAML] (http://en.wikipedia.org/wiki/YAML) ist eine gute Alternative, siehe Paket 'yaml'. Es kann 'R''s grundlegende Datentypen (* z.B. * benannte Listen, Vektoren, ...) verarbeiten und ist menschlich lesbar (besser als XML meiner Meinung nach). – QkuCeHBH

Antwort

4

Dump es in eine Textdatei mit dput. Auf diese Weise erhalten Sie die gesamte Struktur der Objekte von R, und zwar in einer textbasierten Form, die, wenn R nicht mehr existiert, relativ leicht analysiert werden kann.

Es ist wahrscheinlich nicht bestanden (3), Ihr 'offener Standard' Test.

R ist ziemlich gut für die Abwärtskompatibilität mit seinem .RData-Format. Selbst wenn die vom neuesten R geschriebenen Dateien nicht die gleichen wie die älteren sind, liest das neueste R immer noch alte Dateien. Wenn R jedoch nicht mehr vorhanden sein sollte, ist das Reverse-Engineering des Binärformats um Größenordnungen schwieriger als das Growing der Ausgabe von dput.