Wie speichere ich einen data.frame in R?


137

Ich habe in R einen data.frame erstellt, der nicht sehr groß ist, dessen Erstellung jedoch einige Zeit in Anspruch nimmt. Ich würde es als Datei speichern, die ich dann wieder in R öffnen kann?

Antworten:


176

Es gibt verschiedene Möglichkeiten. Eine Möglichkeit besteht save()darin, das genaue Objekt zu speichern. zB für Datenrahmen foo:

save(foo,file="data.Rda")

Dann laden Sie es mit:

load("data.Rda")

Sie können auch write.table()oder so etwas verwenden, um die Tabelle im Klartext zu speichern oder dput()um R-Code zum Reproduzieren der Tabelle zu erhalten.


2
Es gibt auch dumpund erstellte Dateien würden source()-ed, obwohl die help(dump)Seite sagt, saveist "sicherer".
IRTFM

4
Ich ziehe es immer Daten im Klartext zu speichern, so dass ich lieber dump()über save()und write.table()überdump()
Sacha Epskamp

Stimmt es, dass write.table Dinge wie das Einrichten einer Spalte mit Nullen und Einsen als Faktor nicht beibehält, aber das save()/ load()wird? Wenn ja, ist dies ebenfalls zu berücksichtigen. Normalerweise verarbeite ich einige CSV-Dateien in einem Abschnitt. Sobald ich sie dort habe, wo ich sie mag, ziehe ich es vor, sie zu speichern, damit ich diesen Code nicht jedes Mal neu ausführen muss, wenn ich mein Projekt erneut besuche. Daher ist es wichtig, diese Arbeit / Änderungen an der Struktur beizubehalten.
Hendy

4
Ja. dump()speichert auch die Struktur. Das Schöne daran write.tableist, dass es Tabellen so schreibt, wie viele Software sie importieren können.
Sacha Epskamp

2
Dies spart mehr als nur den Datenrahmen. Siehe saveRDS, um einen Datenrahmen ohne Namen zu speichern (dhendrickson hat eine Antwort darauf).
PatrickT

91

Wenn Sie nur ein einzelnes Objekt (Ihren Datenrahmen) speichern, können Sie auch verwenden saveRDS.
Speichern:

saveRDS(foo, file="data.Rda")

Dann lesen Sie es mit:

bar <- readRDS(file="data.Rda")

Der Unterschied zwischen saveRDSund savebesteht darin, dass im ersteren nur ein Objekt gespeichert werden kann und der Name des Objekts nach dem Laden nicht mehr identisch sein muss.


1

Angenommen, Sie haben einen von Ihnen erstellten Datenrahmen mit dem Namen "Data_output". Sie können ihn einfach mithilfe der folgenden Syntax in dasselbe Verzeichnis exportieren.

write.csv (Data_output, "output.csv", row.names = F, quote = F)

Kredit an Peter und Ilja, UMCG, Niederlande

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.