Daten können in verschiedenen Formaten vorliegen. Für jedes Format hat R eine bestimmte Funktion und ein bestimmtes Argument. In diesem Tutorial wird erklärt, wie Sie Daten in R importieren.
In diesem Tutorial lernen Sie
- Lesen Sie CSV
- Excel-Dateien lesen
- readxl_example ()
- read_excel ()
- excel_sheets ()
- Importieren Sie Daten aus anderer statistischer Software
- Lesen Sie sas
- Lesen Sie STATA
- Lesen Sie SPSS
- Best Practices für den Datenimport
Lesen Sie CSV
Einer der am weitesten verbreiteten Datenspeicher sind die CSV-Dateiformate (durch Kommas getrennte Werte). R lädt während des Startvorgangs ein Array von Bibliotheken, einschließlich des Utils-Pakets. Dieses Paket ist praktisch, um CSV-Dateien in Kombination mit der Funktion "Reading.csv ()" zu öffnen. Hier ist die Syntax für read.csv
read.csv(file, header = TRUE, sep = ",")
Argument :
- Datei : PFAD, in dem die Datei gespeichert ist
- Header : Bestätigen Sie, ob die Datei einen Header hat oder nicht. Standardmäßig ist der Header auf TRUE gesetzt
- sep : das Symbol zum Teilen der Variablen. 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 Pfad 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)
Ausgabe:
## [1] 12
class(df$X)
Ausgabe:
## [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)
Ausgabe:
## [1] "character"
Die Klasse für die Variable X ist jetzt ein Zeichen.
Excel-Dateien lesen
Excel-Dateien sind bei Datenanalysten sehr beliebt. Tabellenkalkulationen sind einfach zu bearbeiten und flexibel. R ist mit einer Bibliothek readxl zum Importieren einer Excel-Tabelle 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. Sie sollten im Befehlsfenster sehen:
Ausgabe:
Loading required package: readxl.
Wenn das Paket nicht beendet wird, können Sie es mit der Conda-Bibliothek oder im Terminal installieren. Verwenden Sie 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 ()
Wir verwenden die Beispiele, die im Paket readxl enthalten sind, während dieses Tutorials.
Verwenden Sie Code
readxl_example()
um alle verfügbaren Tabellen in der Bibliothek anzuzeigen.
Verwenden Sie einfach, um den Speicherort der Tabelle mit dem Namen clippy.xls zu überprüfen
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 beim Öffnen von xls und xlsx extention von großem Nutzen.
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 Tabellen 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 spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Ausgabe:
## [1] 5
excel_sheets ()
Die Datei datetsets.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)
Ausgabe:
[1] "iris" "mtcars" "chickwts" "quakes"
Wenn ein Arbeitsblatt viele Blätter enthält, ist es einfach, ein bestimmtes Blatt mithilfe der Blattargumente auszuwählen. Wir können den Namen des Blattes oder den Blattindex angeben. Wir können überprüfen, ob beide Funktionen dieselbe Ausgabe mit identischem () zurückgeben.
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Ausgabe:
## [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 Bereichsargument in Kombination mit cell_rows oder cell_cols
Zum Beispiel setzen wir n_max gleich 5, um die ersten fünf Zeilen zu importieren.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Wenn wir col_names in FALSE ändern, erstellt R die Header automatisch.
# Read the first five row: without headeriris_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 B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Ausgabe:
## [1] 4 2
Wir können sehen, dass das Beispiel_1 4 Zeilen mit 2 Spalten zurückgibt. Der Datensatz hat eine Kopfzeile, weshalb die Dimension 4x2 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) dieselbe Ausgabe zurückgibt wie cell_rows (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Ausgabe:
## [1] 4 5
Das Beispiel_2 ist jedoch eine 4x5-Matrix. Der Iris-Datensatz enthält 5 Spalten mit Kopfzeile. Wir geben die ersten vier Zeilen mit der Überschrift aller Spalten zurück
Wenn 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 Bcol <-read_excel(example, range =cell_cols("A:B"))dim(col)
Ausgabe:
## [1] 150 2
Hinweis: range = cell_cols ("A: B") gibt die Ausgabe aller Zellen mit einem Wert ungleich Null zurück. Das Dataset 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 angezeigt wird. Wir können die Anzahl der fehlenden Werte mit der Kombination zweier Funktionen zählen
- Summe
- is.na.
Hier ist der Code
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Ausgabe:
## [1] 50
Wir haben 50 fehlende Werte, das sind die Zeilen, die zur Setosa-Art gehören.
Importieren Sie Daten aus anderer statistischer Software
Wir werden verschiedene Dateiformate mit dem Heaven-Paket importieren. Dieses Paket unterstützt SAS-, STATA- und SPSS-Software. Mit der folgenden Funktion können wir je nach Dateierweiterung verschiedene Dataset-Typen ö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 gehe zum link oder im terminal conda install -c conda-forge r-port
Lesen Sie sas
In unserem 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)
Ausgabe:
## # A tibble: 6 x 4## ADMIT GRE GPA RANK#### 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 den gleichen Datensatz, speichern ihn jedoch in der .dta-Datei.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)
Ausgabe:
## # A tibble: 6 x 4## admit gre gpa rank#### 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)
Ausgabe:
## # A tibble: 6 x 4## admit gre gpa rank#### 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 zu implementieren. Dies erleichtert das korrekte Importieren von Daten in R:
- Das typische Format für eine Tabelle besteht darin, die ersten Zeilen als Kopfzeile zu verwenden (normalerweise Variablenname).
- Vermeiden Sie es, einen Datensatz mit Leerzeichen zu benennen. Dies kann zur Interpretation als separate Variable führen. Alternativ können Sie lieber '_' oder '-' verwenden.
- Kurznamen werden bevorzugt
- Fügen Sie kein Symbol in den Namen ein: dh: 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 Funktion zusammen, die zum Importieren verschiedener Dateitypen in R verwendet werden soll. In Spalte 1 wird die Bibliothek angegeben, die sich auf die Funktion bezieht. Die letzte Spalte bezieht sich auf das Standardargument.
Bibliothek |
Zielsetzung |
Funktion |
Standardargumente |
---|---|---|---|
Utensilien |
CSV-Datei lesen |
read.csv () |
Datei, Header =, TRUE, sep = "," |
readxl |
EXCEL-Datei lesen |
read_excel () |
Pfad, Bereich = NULL, col_names = TRUE |
Oase |
SAS-Datei lesen |
read_sas () |
Pfad |
Oase |
STATA-Datei lesen |
read_stata () |
Pfad |
Oase |
Lesen Sie die SPSS-Datei |
read_sav () |
Pfad |
Die folgende Tabelle zeigt die verschiedenen Möglichkeiten zum Importieren einer Auswahl mit der Funktion read_excel ().
Funktion |
Ziele |
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 |
range = cell_rows (1: 3) |
|
Wählen Sie Spalten mit Buchstaben aus |
range = cell_cols ("A: C") |