2016-03-22 2 views
2

Ich habe eine data.table mit 30 Millionen Zeilen und 15 Spalten auf der Festplatte (Größe 177 MB, Datei 1) gespeichert.Hinzufügen von mehr Spalten zu einer Datentabelle Verringerung der Größe des. RData-Objekts

Ich lade diese Daten in R, verarbeite sie und füge weitere 8 Spalten (Reihen bleiben gleich) hinzu und speichere sie erneut als .RData Datei, aber dieses Mal ist ihre Größe gesunken (144 MB, Datei 2).

Wie ist das möglich? Sollte nicht die Größe der .RData Datei erhöhen, wenn ich mehr Spalten hinzugefügt habe?

EDIT: Erste Datei ist data.table (in R), die ich es als. RData auf der Festplatte speichern (Datei 1, 177 MB). Ich lade es dann wieder in R, bearbeite es, füge weitere Spalten hinzu (Zeilen bleiben gleich) und speichere es zurück (Datei 2, 144 MB).

+2

.RData ist die komprimierte Datei, die weniger Speicherplatz benötigt. Daher ist es sinnvoller, R-Objekte zu speichern. – MAPK

+1

Wie ist das Format der Originaldaten? Ist es eine Textdatei (z. B. CSV) oder eine '.RData' Datei? Können Sie auch ein reproduzierbares Beispiel veröffentlichen (z. B. Daten simulieren, schreiben, zurücklesen und dann erneut speichern)? –

Antwort

1

Die .Rdata help file baut auf MAPK Kommentar und stellt fest, dass:

Große Dateien können erheblich in Größe durch Kompression reduziert werden. Ein bestimmtes 46 MB R-Objekt wurde als 35 MB ohne Komprimierung in 2 Sekunden, 22 MB mit GZIP-Komprimierung in 8 Sekunden, 19 MB mit BZIP2-Komprimierung in 13 Sekunden und 9,4 MB mit XZ-Komprimierung in 40 Sekunden gespeichert. Die Ladezeiten betrugen 1,3, 2,8, 5,5 bzw. 5,7 Sekunden. Diese Ergebnisse sind indikativ, aber die relativen Leistungen hängen von der tatsächlichen Datei ab: XZ komprimiert hier ungewöhnlich gut.

Es ist möglich, später (mit gzip, bzip2 oder xz) eine Datei zu komprimieren, die mit compress = FALSE gespeichert wurde: Der Effekt entspricht dem Speichern mit Komprimierung. Außerdem kann eine gespeicherte Datei unter einem anderen Komprimierungsschema dekomprimiert und erneut komprimiert werden (und siehe resaveRdaFiles für eine Möglichkeit, dies innerhalb von R zu tun).

+0

Ich bin verwirrt - wie beantwortet das das OP? I.e. Wie erklärt dies, dass OP eine kleinere Größe mit mehr Spalten bekommt? – eddi

+0

Ich bin mir ziemlich sicher, dass sowohl der OP-Text als auch der Titel klarstellen, dass sowohl der Start- als auch der Endpunkt eine .RData-Datei sind – eddi

Verwandte Themen