Daten in R importieren: CSV-, Excel-, SPSS-, Stata- und SAS-Dateien lesen
Daten kรถnnen in verschiedenen Formaten vorliegen. Fรผr jedes Format R hat eine bestimmte Funktion und ein bestimmtes Argument. In diesem Tutorial wird erklรคrt, wie man Daten in R importiert.
CSV lesen
Einer der am weitesten verbreiteten Datenspeicher sind die Dateiformate .csv (durch Kommas getrennte Werte). R lรคdt beim Start eine Reihe von Bibliotheken, einschlieรlich des Utils-Pakets. Dieses Paket ist praktisch zum รffnen von CSV-Dateien in Kombination mit der Funktion reading.csv(). Hier ist die Syntax fรผr read.csv
read.csv(file, header = TRUE, sep = ",")
Argument:
- Datei: PFAD, wo die Datei gespeichert ist
- Kopfzeile: Bestรคtigen Sie, ob die Datei einen Header hat oder nicht. Standardmรครig ist der Header auf TRUE gesetzt
- Sept: das Symbol, das zum Teilen der Variablen verwendet wird. Standardmรครig โ,โ.
Wir werden den Datendateinamen mtcats lesen. Die CSV-Datei wird online gespeichert. Wenn Ihre CSV-Datei lokal gespeichert ist, kรถnnen Sie den PATH im Code-Snippet ersetzen. Vergessen Sie nicht, es in '' einzuwickeln. Der PATH muss ein Zeichenfolgenwert sein.
Fรผr Mac-Benutzer lautet der Pfad fรผr den Download-Ordner:
"/Users/USERNAME/Downloads/FILENAME.csv"
Fรผr Windows-Benutzer:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Beachten Sie, dass wir immer die Erweiterung des Dateinamens angeben sollten.
- .csv
- . Xlsx
- .txt
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
Ausgang
## [1] 12
class(df$X)
Ausgang
## [1] "factor"
R gibt standardmรครig Zeichenwerte als Faktor zurรผck. Wir kรถnnen diese Einstellung deaktivieren, indem wir stringsAsFactors = FALSE hinzufรผgen.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
Ausgang
## [1] "character"
Die Klasse fรผr die Variable X ist jetzt ein Zeichen.
Lesen Sie Excel-Dateien
Excel Dateien erfreuen sich bei Datenanalysten groรer Beliebtheit. Tabellenkalkulationen sind einfach zu handhaben und flexibel. R ist mit einer ReadXL-Bibliothek zum Importieren von Excel-Tabellen ausgestattet.
Verwenden Sie diesen Code
require(readxl)
um zu รผberprรผfen, ob readxl auf Ihrem Computer installiert ist. Wenn Sie r mit r-conda-essential installieren, ist die Bibliothek bereits installiert. Im Befehlsfenster sollte Folgendes angezeigt werden:
Ausgang
Loading required package: readxl.
Wenn das Paket nicht beendet wird, kรถnnen Sie es mit der Conda installieren oder verwenden Sie im Terminal conda install -c mittner r-readxl.
Verwenden Sie den folgenden Befehl, um die Bibliothek zum Importieren von Excel-Dateien zu laden.
library(readxl)
readxl_example()
In diesem Tutorial verwenden wir die im Paket readxl enthaltenen Beispiele.
Code
readxl_example()
um alle verfรผgbaren Tabellenkalkulationen in der Bibliothek anzuzeigen.
Um den Speicherort der Tabelle mit dem Namen โclippy.xlsโ zu รผberprรผfen, verwenden Sie einfach โ
readxl_example("geometry.xls")
Wenn Sie R mit Conda installieren, befinden sich die Tabellen in Anaconda3/lib/R/library/readxl/extdata/filename.xls
read_excel()
Die Funktion read_excel() ist von groรem Nutzen, wenn es um das รffnen von XLS- und XLSX-Erweiterungen geht.
Die Syntax lautet:
read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE) arguments: -PATH: Path where the excel is located -sheet: Select the sheet to import. By default, all -range: Select the range to import. By default, all non-null cells -col_names: Select the columns to import. By default, all non-null columns
Wir kรถnnen die Tabellenkalkulationen aus der ReadXL-Bibliothek importieren und die Anzahl der Spalten im ersten Blatt zรคhlen.
# Store the path of `datasets.xlsx`
example <- readxl_example("datasets.xlsx")
# Import the spreadsheet
df <- read_excel(example)
# Count the number of columns
length(df)
Ausgang
## [1] 5
excel_sheets()
Die Datei datasets.xlsx besteht aus 4 Blรคttern. Mit der Funktion excel_sheets() kรถnnen wir herausfinden, welche Blรคtter in der Arbeitsmappe verfรผgbar sind
example <- readxl_example("datasets.xlsx")
excel_sheets(example)
Ausgang
[1] "iris" "mtcars" "chickwts" "quakes"
Wenn ein Arbeitsblatt viele Blรคtter enthรคlt, ist es mithilfe der Blattargumente einfach, ein bestimmtes Blatt auszuwรคhlen. Wir kรถnnen den Namen des Blattes oder den Blattindex angeben. Wir kรถnnen รผberprรผfen, ob beide Funktionen mit identisch() die gleiche Ausgabe zurรผckgeben.
example <- readxl_example("datasets.xlsx")
quake <- read_excel(example, sheet = "quakes")
quake_1 <-read_excel(example, sheet = 4)
identical(quake, quake_1)
Ausgang
## [1] TRUE
Wir kรถnnen auf zwei Arten steuern, welche Zellen gelesen werden sollen
- Verwenden Sie das Argument n_max, um n Zeilen zurรผckzugeben
- Verwenden Sie das Argument range in Kombination mit cell_rows oder cell_cols
Beispielsweise setzen wir n_max auf 5, um die ersten fรผnf Zeilen zu importieren.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Wenn wir col_names auf FALSE รคndern, erstellt R die Header automatisch.
# Read the first five row: without header iris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
Im Datenrahmen iris_no_header hat R fรผnf neue Variablen mit den Namen X__1, X__2, X__3, X__4 und X__5 erstellt
Wir kรถnnen den Argumentbereich auch verwenden, um Zeilen und Spalten in der Tabelle auszuwรคhlen. Im folgenden Code verwenden wir den Excel-Stil, um den Bereich A1 bis B5 auszuwรคhlen.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
Ausgang
## [1] 4 2
Wir kรถnnen sehen, dass example_1 4 Zeilen mit 2 Spalten zurรผckgibt. Der Datensatz hat einen Header, weshalb die Dimension 4ร2 ist.
Im zweiten Beispiel verwenden wir die Funktion cell_rows(), die den Bereich der zurรผckzugebenden Zeilen steuert. Wenn wir die Zeilen 1 bis 5 importieren mรถchten, kรถnnen wir cell_rows(1:5) setzen. Beachten Sie, dass cell_rows(1:5) die gleiche Ausgabe zurรผckgibt wie cell_rows(5:1).
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
Ausgang
## [1] 4 5
Das Beispiel_2 ist jedoch eine 4ร5-Matrix. Der Irisdatensatz besteht aus 5 Spalten mit Kopfzeile. Wir geben die ersten vier Zeilen mit der รberschrift aller Spalten zurรผck
Falls wir Zeilen importieren mรถchten, die nicht in der ersten Zeile beginnen, mรผssen wir col_names = FALSE einschlieรen. Wenn wir range = cell_rows(2:5) verwenden, wird deutlich, dass unser Datenrahmen keinen Header mehr hat.
iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE) iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)
We can select the columns with the letter, like in Excel.
# Select columns A and B
col <-read_excel(example, range =cell_cols("A:B"))
dim(col)
Ausgang
## [1] 150 2
Hinweis: range = cell_cols(โA:Bโ) gibt alle Zellen mit einem Wert ungleich Null aus. Der Datensatz enthรคlt 150 Zeilen, daher gibt read_excel() Zeilen bis zu 150 zurรผck. Dies wird mit der Funktion dim() รผberprรผft.
read_excel() gibt NA zurรผck, wenn ein Symbol ohne numerischen Wert in der Zelle erscheint. Mit der Kombination zweier Funktionen kรถnnen wir die Anzahl der fehlenden Werte zรคhlen
- Summe
- is.na
Hier ist der Code
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
Ausgang
## [1] 50
Uns fehlen 50 Werte, das sind die Zeilen, die zur Setosa-Art gehรถren.
Importieren Sie Daten aus anderer Statistiksoftware
Wir werden verschiedene Dateiformate mit dem Heaven-Paket importieren. Dieses Paket unterstรผtzt SAS, STATA und SPSS-Software. Wir kรถnnen die folgende Funktion verwenden, um je nach Dateierweiterung verschiedene Arten von Datensรคtzen zu รถffnen:
- SAS: read_sas()
- STATA: read_dta() (oder read_stata(), die identisch sind)
- SPSS: read_sav() oder read_por(). Wir mรผssen die Erweiterung รผberprรผfen
Diese Funktionen benรถtigen nur ein Argument: den Pfad, in dem die Datei gespeichert ist. Damit kรถnnen wir nun alle Dateien aus SAS, STATA und SPSS รถffnen. Diese drei Funktionen akzeptieren einen Pfad. URL .
library(haven)
Port kommt mit conda r-essential sonst gehen Sie zu den Link oder im Terminal conda install -c conda-forge r-haven
Lesen Sie sas
Fรผr unser Beispiel verwenden wir den Zulassungsdatensatz von IDRE.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
Ausgang
## # A tibble: 6 x 4 ## ADMIT GRE GPA RANK ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Lesen Sie STATA
Fรผr STATA-Datendateien kรถnnen Sie read_dta() verwenden. Wir verwenden genau denselben Datensatz, speichern ihn jedoch in einer .dta-Datei.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
Ausgang
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Lesen Sie SPSS
Wir verwenden die Funktion read_sav(), um eine SPSS-Datei zu รถffnen. Die Dateierweiterung โ.savโ
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
Ausgang
## # A tibble: 6 x 4 ## admit gre gpa rank ## <dbl> <dbl> <dbl> <dbl> ## 1 0 380 3.61 3 ## 2 1 660 3.67 3 ## 3 1 800 4.00 1 ## 4 1 640 3.19 4 ## 5 0 520 2.93 4 ## 6 1 760 3.00 2
Best Practices fรผr den Datenimport
Wenn wir Daten in R importieren mรถchten, ist es hilfreich, die folgende Checkliste umzusetzen. Sie erleichtert das korrekte Importieren von Daten in R:
- Das typische Format fรผr eine Tabellenkalkulation besteht darin, die ersten Zeilen als Kopfzeile zu verwenden (normalerweise Variablennamen).
- Vermeiden Sie es, einen Datensatz mit Leerzeichen zu benennen. Dies kann zur Interpretation als separate Variable fรผhren. Alternativ verwenden Sie lieber โ_โ oder โ-โ.
- Kurznamen werden bevorzugt
- Fรผgen Sie im Namen kein Symbol ein: zB: โexchange_rate_$_โฌโ ist nicht korrekt. Nennen Sie es lieber: Exchange_rate_dollar_euro
- Verwenden Sie andernfalls NA fรผr fehlende Werte. Wir mรผssen das Format spรคter bereinigen.
Zusammenfassung
Die folgende Tabelle fasst die zu verwendende Funktion zum Importieren verschiedener Dateitypen in R zusammen. In Spalte eins ist die mit der Funktion verbundene Bibliothek aufgefรผhrt. Die letzte Spalte bezieht sich auf das Standardargument.
| Bibliothek | Ziel | Funktion | Standardargumente |
|---|---|---|---|
| utils | CSV-Datei lesen | read.csv() | file, header =,TRUE, sep = โโ, |
| readxl | Excel-Datei lesen | read_excel() | Pfad, Bereich = NULL, Spaltennamen = TRUE |
| Port | SAS-Datei lesen | read_sas() | Weg |
| Port | STATA-Datei lesen | read_stata() | Weg |
| Port | Lesen Sie die SPSS-Datei | read_sav() | Weg |
Die folgende Tabelle zeigt die verschiedenen Mรถglichkeiten zum Importieren einer Auswahl mit der Funktion read_excel().
| Funktion | Ziel | Argumente |
|---|---|---|
| read_excel() | Lesen Sie n Zeilen | n_max = 10 |
| Wรคhlen Sie Zeilen und Spalten wie in Excel aus | Bereich = โA1:D10โ | |
| Wรคhlen Sie Zeilen mit Indizes aus | Bereich = Zellenzeilen (1:3) | |
| Wรคhlen Sie Spalten mit Buchstaben aus | range = cell_cols(โA:Cโ) |







