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.

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

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”)