Lesen von xlsx-Dateien in R

  1. Lassen Sie den Benutzer die zu importierende Datei angeben
  2. Verwenden Sie die Bibliothek openxlsx zum Lesen von xlsx-Dateien in R

Die gebräuchlichste Art, Daten aus einer Excel-Tabelle zu erhalten und in R zu importieren, besteht darin, die Daten in ein konventionelleres Format, wie .csv, zu speichern. Wenn Sie jedoch wiederholt xlsx-Dateien importieren müssen, ist eine schnellere Option, wie die Verwendung eines Pakets zum direkten Importieren von Excel-Dateien in R, vorzuziehen.

Viele Pakete in R haben die Fähigkeit, xls/xlsx-Dateien zu lesen. Eines davon ist readxl. Dieses Paket hat weniger externe Abhängigkeiten als andere Pakete, was es einfach macht, es in fast jedem Betriebssystem zu installieren. Der einfachste Weg, es zu Ihrer R-Umgebung hinzuzufügen, ist, die gesamte tidyverse-Bibliothek mit dem folgenden Befehl zu installieren:

install.packages("tidyverse")

Da es sich aber nicht um eine Kernbibliothek von tidyverse handelt, muss sie noch explizit mit dem Befehl library(readxl) geladen werden. Dann können Sie eine Excel-Datei mit der Funktion read_excel importieren, etwa so:

MySheet <- read_excel("ExcelFile.xlsx")

Im vorherigen Beispiel importieren wir den Inhalt einer Tabellenkalkulation namens ExcelFile.xlsx in einen Datenrahmen namens MySheet.

Lassen Sie den Benutzer die zu importierende Datei angeben

Wenn Sie den Speicherort der Excel-Datei nicht im Voraus kennen und den Benutzer die zu lesende Datei auswählen lassen wollen, können Sie file.choose() verwenden, anstatt den Dateipfad explizit anzugeben:

MySheet <- read_excel(file.choose())

Die Funktion read_excel() hat weitere Parameter, um ein bestimmtes Blatt für den Import anzugeben oder einen Wert zu spezifizieren, der NAs anstelle von leeren Zellen darstellt. In diesem Beispiel importieren wir ein Blatt namens data und geben an, dass Zellen mit dem Inhalt NA als NAs interpretiert werden sollen:

MySheet <- read_excel("ExcelFile.xlsx", sheet = "data", na = "NA")

Verwenden Sie die Bibliothek openxlsx zum Lesen von xlsx-Dateien in R

Ein weiteres Paket, das Sie verwenden können, um Excel-Dateien in R zu lesen, ist openxlsx. Dieses Paket vereinfacht das Lesen und Schreiben von xlsx-Dateien und ist, wie readxl, nicht auf Java, Perl oder andere externe Bibliotheken angewiesen. Unter Verwendung von Rcpp bietet openxlsx schnelle Lese-/Schreibzeiten auch für große Dateien. Diese Bibliothek funktioniert gut mit xlsx-Dateien, aber sie unterstützt keine älteren xls-Dateien.

Openxlsx bietet die Funktion read.xlsx, die einen Datenrahmen mit den aus der importierten Datei gelesenen Daten erstellt. Sie hat viele Optionen, um anzugeben, ob der zu importierende Bereich Zeilen- und Spaltennamen enthält, den Namen oder die Nummer des zu importierenden Arbeitsblatts, die zu importierenden Zeilen und Spalten, neben vielen anderen.

Im folgenden Beispiel installieren wir das Paket openxlsx und öffnen die Bibliothek. Dann verwenden wir die Optionen in read.xlsx, um die Zeilen 2, 4 und 6 sowie die Spalten 5 bis 7 aus Blatt 1 einer Datei namens Data.xlsx mit diesen Daten zu importieren:

Beispiel-Excel

Danach geben wir den Inhalt des resultierenden Datenrahmens auf der Konsole aus. Da wir die Spaltennamen nicht aus der Datei lesen, setzen wir den Parameter colNames auf FALSE. R weist den Spalten im importierten Daten-Frame automatisch eine Standardfolge von Namen zu: X1, X2, X3. Beachten Sie, dass wir angeben können, welche Zeilen und Spalten importiert werden sollen, indem wir sie mit Vektoren spezifizieren:

install.packages("openxlsx")
library("openxlsx")
MyData <- read.xlsx(xlsxFile="c:/Tmp/Data.xlsx", sheet = 1, rows = c(2, 4, 6), cols = 5:7, colNames = FALSE)
MyData

Ausgabe:

  X1 X2 X3
1 34 12 17
2 15 25 66
3 32 45 56

Weitere Informationen finden Sie in der offiziellen openxlsx-Dokumentation.