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 Bibliothek 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
Innerhalb dieser Funktion ist nur ein Argument erforderlich. Wir müssen den PFAD kennen, in dem die Datei gespeichert ist. Das war's, wir sind bereit, alle Dateien von SAS, STATA und SPSS zu öffnen. Diese drei Funktionen akzeptieren auch eine 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”) |