HOWTO · R
Datenrahmen in CSV in R exportieren
Erfahren Sie, wie Sie einen Datenrahmen in R mit write.csv(), write.table(), data.table::fwrite() und readr::write_csv() nach CSV exportieren.
Auf dieser Seite
Mit Base R können Sie einen Datenrahmen mit write.csv() als kommagetrennte Datei speichern. Verwenden Sie write.table(), wenn Sie das Trennzeichen selbst festlegen möchten. data.table::fwrite() und readr::write_csv() sind Alternativen aus Paketen. Die folgenden Beispiele verwenden denselben kleinen Datenrahmen und erläutern, wo die jeweilige Datei gespeichert wird und ob Zeilennamen enthalten sind.
Einen Datenrahmen mit write.csv() und write.table() exportieren
Das folgende Base-R-Beispiel schreibt beide Formate in das temporäre Verzeichnis von R und prüft, ob die Dateien vorhanden sind. Der dokumentierte Lauf wurde erfolgreich abgeschlossen; beide Prüfungen auf vorhandene Dateien ergaben TRUE:
people <- data.frame(
Name = c("Alice", "Bob", "Charlie"),
Age = c(25, 30, 35),
City = c("New York", "Los Angeles", "Chicago")
)
csv_path <- file.path(tempdir(), "people.csv")
table_path <- file.path(tempdir(), "people-table.csv")
write.csv(people, file = csv_path, row.names = FALSE)
write.table(people, file = table_path, sep = ",", row.names = FALSE, col.names = TRUE)
file.exists(c(csv_path, table_path))
[1] TRUE TRUE
Mit file.path(tempdir(), ...) ist der Speicherort explizit angegeben; außerdem müssen Sie sich nicht auf das aktuelle Arbeitsverzeichnis verlassen. Für einen dauerhaften Speicherort können Sie die temporären Pfade durch einen Dateinamen wie "people.csv" ersetzen, um die Datei im Arbeitsverzeichnis abzulegen, oder einen vollständigen Pfad angeben. In Windows-Pfaden funktionieren Schrägstriche, zum Beispiel "C:/Users/you/Documents/people.csv"; mit file.path() lassen sich außerdem Pfadbestandteile passend zum jeweiligen Betriebssystem zusammensetzen.
write.csv() ist eine für kommagetrennte Daten konfigurierte Komfortvariante von write.table(). Beide Funktionen schreiben standardmäßig Zeilennamen mit. Mit row.names = FALSE lassen sie sich weglassen; mit row.names = TRUE werden sie als zusätzliches erstes Feld geschrieben. Bei write.table() können Sie das Trennzeichen mit sep festlegen. Verwenden Sie für kommagetrennte Daten sep = "," und behalten Sie col.names = TRUE bei, wenn die erste Zeile die Spaltenüberschriften enthalten soll. file.exists() liefert für jeden angegebenen Pfad einen logischen Wert zurück und kann so bestätigen, dass die Dateien erstellt wurden. Um ihren Inhalt zu prüfen, öffnen Sie die Dateien in einem Texteditor oder einer Tabellenkalkulation.
Einen Datenrahmen mit data.table::fwrite() exportieren
Das Paket data.table stellt fwrite() bereit, um einen Datenrahmen oder eine data.table in eine Datei mit Trennzeichen zu schreiben. Installieren Sie das Paket einmalig mit install.packages("data.table") und laden Sie es anschließend vor dem Aufruf mit library(data.table). Für den oben gezeigten Datenrahmen people schreibt data.table::fwrite(people, file.path(tempdir(), "people-fwrite.csv")) eine kommagetrennte Datei ohne Zeilennamen. Die Schreibweise data.table::fwrite() macht deutlich, aus welchem Paket die Funktion stammt. Dieses Paketbeispiel wurde hier nicht ausgeführt: Für die Prüfung liegen weder ein Laufzeit-Snapshot noch Angaben zur Verfügbarkeit des Pakets vor.
Einen Datenrahmen mit readr::write_csv() exportieren
Eine weitere Möglichkeit bietet das Paket readr. Installieren Sie es einmalig mit install.packages("readr") und laden Sie es anschließend mit library(readr), oder rufen Sie die Funktion über ihren Namespace auf. Für dieselben Daten schreibt readr::write_csv(people, file.path(tempdir(), "people-readr.csv")) kommagetrennte Werte ohne Zeilennamen und mit Spaltennamen. Anders als write.table() bietet write_csv() kein Argument für das Trennzeichen, da die Funktion CSV-Dateien schreibt. Das oben dokumentierte Prüfprogramm deckt nur Base R ab. Dieses readr-Beispiel wurde hier nicht ausgeführt; für die Prüfung liegen weder ein Laufzeit-Snapshot noch Angaben zur Verfügbarkeit des Pakets vor.