Überblick über das Öffnen verschiedener Dateien
Letzte Änderung am 10. Dezember 2020
Um Daten in R aufbereiten und bearbeiten zu können, muss man diese erst einmal einlesen können. Manchmal gestaltet sich das leider schwieriger als erwartet.
Im Folgenden wollen wir uns einige Methoden zum Einlesen gängiger Dateiformate in R anschauen. Das Dateiformat einer Datei erkennt man an seiner Endung.
Windows
Wir drücken shift und machen dann einen Rechtsklick auf die Datei. Nun öffnet sich ein Menü, in welchem wir Als Dateipfad kopieren auswählen. Wichtig dabei ist, dass wir noch alle \ (backslashes) aus dem kopierten Pfad in / (forwardslashes) ändern müssen.
Mac
Wir klicken einmal auf die Datei (sodass sie markiert ist; dann ist sie blau hinterlegt) und führen dann den Kurzbefehl alt + cmd + C aus.
Für eine ausführlichere Anleitung zum Einlesen von Dateien in R gibt es ein eigenständiges Kapitel, in wir lernen, wie wir die Benutzeroberfläche von RStudio und Funktionen nutzen können.
Diese Dateiformate sind die am weitesten verbreiteten Tabellendateien. Alle drei können u.a. mit den folgenden Funktionen eingelesen werden:
read.table("Dateipfad")
read.delim("Dateipfad")
read.csv("Dateipfad")
Diese drei Funktionen sind sehr ähnlich aufgebaut. Sind haben aber teilweise unterschiedliche Voreinstellungen (sog. “Defaults”). Zum Beispiel nimmt read.csv()
an, dass Elemente aus verschiedenen Spalten in einer Zeile jeweils mit einem Komma (sep=","
) getrennt sind. Dafür werden bei read.table()
ohne weitere Spezifikation die Spaltennamen nicht eingelesen (header=FALSE
).
In Abhängigkeit der Speicherung der Dateien muss man teilweise noch weitere Argumente der Funktionen nutzen (d.h. nicht die Defaults einer Funktion nutzen).
header = TRUE
(bei read.table)
V1
, V2
, V3
etc. benannt.sep = ";"
fill = TRUE
(bei read.table)
NA
(R-Kodierung für Missings) befüllt werden sollen.Um in Erfahrung zu bringen, welche Argumente wir nutzen müsst, um die Daten korrekt einzulesen, können wir einen Trial-and-Error Ansatz verwenden:
Wir lesen die Datei erstmal ohne Spezifikation von Argumenten ein z.B. mit read.table("Dateipfad")
.
Dann schauen wir uns die Datei in R ein und beurteilen, ob diese korrekt angezeigt wird. Schauen wir uns dazu beispielhaft einmal folgende csv-Datei an:
V1 |
---|
uni,satis_uni,residence,satis_location_uni |
FU,5.5130602101329025,S,4.4057101367098666 |
FU,7.233871516077954,Z,5.760182068473526 |
HU,12.890984224974451,Z,7.205686095942897 |
HU,8.691844540148681,Z,5.2505748559609025 |
FU,5.136949092682058,N,5.421972864044606 |
header=TRUE
nutzen, damit die Spaltennamen als solche übernommen werden.sep=","
benutzen, damit die Spalten korrekt getrennt werden.read.table("Dateipfad", header=TRUE, sep=",")
uni | satis_uni | residence | satis_location_uni |
---|---|---|---|
FU | 5.513060 | S | 4.405710 |
FU | 7.233872 | Z | 5.760182 |
HU | 12.890984 | Z | 7.205686 |
HU | 8.691845 | Z | 5.250575 |
FU | 5.136949 | N | 5.421973 |
HU | 7.777371 | O | 6.593942 |
Nun wird die Datei korrekt dargestellt.
Es kann dabei sein, dass unterschiedliche Personen zum korrekten Einlesen (derselben Datei) andere Argumenten nutzen. Das kann auf unterschiedliche Betriebssysteme oder Programme zum Öffnen der Dateien zurückzuführen sein.
Mehr Informationen zu den Funktionen und ihren Argumenten findet wir, wenn wir unter read.table in der R-Dokumentation (Help im unteren rechten Panel) nachschauen, oder indem wir ?read.table
in die Konsole eingeben.
Diese Endungen gehören zum Programm Excel. Man muss externe Pakete installieren, um Excel-Dateien in R einlesen zu können.
Um .xlsx-Dateien einzulesen, nutzen wir das Paket openxlsx.
Alternativ können wir das Paket readxl nutzen. Dieses ermöglicht uns sogar .xlsx- und .xls-Dateien einzulesen.
Die Endung .sav wird z.B. für SPSS-Dateien genutzt wird. Hierfür muss man wieder ein zusätzliches Paket (z.B. foreign) runterladen, um SPSS-Dateien in R einlesen zu können.
Man kann Dateien auch direkt aus dem Internet laden mit Hilfe ihrer URL.
Alternativ kann man die Datei auch herunterladen und dann in Abhängigkeit ihres Formats mit einem der oberen Befehle einlesen.
R-eigene Dateien kann man am besten öffnen, indem man auf sie klickt. Mac-Benutzer haben dabei manchmal das Problem, das sich die Datei per default in R öffnet.
Falls wir ein seltener genutztes Dateiformat (z.B. Stata, JSON) in R einlesen möchten, können wir in dem Data Import Tutorial auf Datacamp nachschauen.
Um eine möglichst exakte Replikation der Funktionen zu gewährleisten gibt es im folgenden relevante Angaben zum System (R-Version, Betriebssystem, geladene Pakete mit Angaben zur Version), mit welchem diese Seite erstellt wurde.
R version 4.0.3 (2020-10-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.1 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
locale:
[1] LC_CTYPE=de_DE.UTF-8 LC_NUMERIC=C
[3] LC_TIME=de_DE.UTF-8 LC_COLLATE=de_DE.UTF-8
[5] LC_MONETARY=de_DE.UTF-8 LC_MESSAGES=de_DE.UTF-8
[7] LC_PAPER=de_DE.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] knitr_1.30 readxl_1.3.1 openxlsx_4.2.3 foreign_0.8-79
loaded via a namespace (and not attached):
[1] Rcpp_1.0.5 png_0.1-7 fansi_0.4.1
[4] digest_0.6.27 cellranger_1.1.0 magrittr_2.0.1
[7] evaluate_0.14 highr_0.8 zip_2.1.1
[10] rlang_0.4.9 stringi_1.5.3 vctrs_0.3.5
[13] rmarkdown_2.5 distill_1.1 tools_4.0.3
[16] stringr_1.4.0 xfun_0.19 yaml_2.2.1
[19] compiler_4.0.3 htmltools_0.5.0 downlit_0.2.1
Für Informationen zur Interpretation dieses Outputs schaut auch den Abschnitt Replizierbarkeit von Analysen des Kapitels zu Paketen an.