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.

Readxl_Example

Um den Speicherort der Tabelle mit dem Namen โ€žclippy.xlsโ€œ zu รผberprรผfen, verwenden Sie einfach โ€ž

readxl_example("geometry.xls")

Readxl_Example

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

  1. Verwenden Sie das Argument n_max, um n Zeilen zurรผckzugeben
  2. 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)

Excel_Sheets

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

Excel_Sheets

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.

Excel_Sheets

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

Excel_Sheets

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)

Excel_Sheets

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

  1. Summe
  2. 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โ€)

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: