Anleitung zum Lesen von Daten aus Excel in R

Wenn Sie Benutzer von R fragen, was der beste Weg, um Daten direkt aus Microsoft Excel zu importieren, werden die meisten von ihnen wahrscheinlich antworten, dass die beste Option zum ersten Export von Excel in eine CSV-Datei und verwenden Sie dann read.csv () Ihre Daten zu R. zu importieren

In der Tat ist dies immer noch der Rat in Kapitel 8 des R Import- und Exporthandbuch, das sagt, # 147-Der erste Ratschlag ist, tut so, wenn möglich! # Zu vermeiden 148- Der Grund dafür ist, dass viele der bestehenden Verfahren für Daten aus Excel, hängt von Software von Drittanbietern oder Bibliotheken importieren, die schwierig sein kann, zu konfigurieren, nicht verfügbar auf allen Betriebssystemen, oder haben vielleicht restriktiven Lizenzbedingungen.

Seit Februar 2011 gibt es jedoch eine neue Alternative: das Paket mit XLConnect, Verfügbar ab CRAN. Was macht XLConnect anders ist, dass es eine Java-Bibliothek verwendet Excel-Dateien zu lesen und zu schreiben. Dies hat zwei Vorteile:

  • Es läuft auf allen Betriebssystemen, die Java unterstützen. XLConnect ist in Java geschrieben und läuft auf Windows, Linux und Mac OS.

  • Es gibt nichts anderes zu laden. XLConnect keine anderen Bibliotheken oder Software erforderlich ist. Wenn Sie Java installiert haben, sollte es funktionieren.

XLConnect auch können Excel-Dateien zu schreiben, einschließlich der Änderung von Zellformatierung, in beiden Excel 97-2003 und Excel 2007/10 Formate.

Um mehr zu erfahren über XLConnect, Sie können die ausgezeichnete Paket Vignette lesen.

Inzwischen sind Juckreiz Sie wahrscheinlich mit einem Beispiel zu beginnen. Angenommen, Sie eine Excel-Tabelle in Ihrem Benutzerverzeichnis lesen möchten genannt Elements.xlsx. Zuerst installieren und laden Sie die Paket- dann ein Objekt mit dem Dateinamen zu erstellen:

> Install.packages ( "XLConnect")> Bibliothek ( "XLConnect")> excel.file lt; - file.path ( "~ / Elements.xlsx")

Jetzt sind Sie bereit, ein Blatt dieser Arbeitsmappe zu lesen mit der readWorksheetFromFile () Funktion. Sie müssen es mindestens zwei Argumente zu übergeben:

  • Datei: Eine Zeichenfolge mit einem Pfad zu einem gültigen .xls oder .xlsx Datei

  • Blatt: Entweder eine ganze Zahl, die die Position des Arbeitsblattes (beispielsweise Blatt = 1) Oder den Namen des Arbeitsblattes (beispielsweise Blatt = "Tabelle2")

Die folgenden zwei Zeilen tun genau das Gleiche - sie sowohl die Daten in dem ersten Arbeitsblatt importieren (genannt Sheet1):

> Elemente lt; - readWorksheetFromFile (excel.file, Blatt = 1)> Elemente lt; - readWorksheetFromFile (excel.file, Blatt = "Sheet1")

Menü