Zum Inhalt springen

GNU R: read.table

Aus Wikibooks

read.table(file) liest eine Tabelle entsprechend ihrer Zeilen und Spalten ein, welche als ein ASCII-Datei file vorliegt.


Argumente

[Bearbeiten]

Das wichtigste Argument ist der Dateipfad, der auf jeden Fall angegeben werden muss. Alle anderen Argumente sind optional und werden durch ein Komma getrennt angehängt. Dabei müssen nur jene Argumente aufgeführt werden, die verändert werden sollen. Die Standardeinstellungen sind folgende:

  • header = FALSE,
  • sep = "",
  • quote = "\"'",
  • dec = ".",
  • row.names,
  • col.names,
  • as.is = !stringsAsFactors,
  • na.strings = "NA",
  • colClasses = NA,
  • nrows = -1,
  • skip = 0,
  • check.names = TRUE,
  • fill = !blank.lines.skip,
  • strip.white = FALSE,
  • blank.lines.skip = TRUE,
  • comment.char = "#",
  • allowEscapes = FALSE,
  • flush = FALSE,
  • stringsAsFactors = default.stringsAsFactors()

Pfad/file

[Bearbeiten]

Nach der geöffneten Klammer wird der Pfad für die zu ladenden Daten eingelesen. Er muss von Anführungszeichen (") eingeschlossen sein, das Laufwerk wird mit Doppelpunkt getrennt. Ordner mit / oder \\. Ein Beispiel:

  • C:alle_Daten/R-Daten/Beispiel.txt

Kopfzeile/header

[Bearbeiten]

Falls die erste Zeile in der zu ladenden Datei die Überschrift zu den Daten enthält und man diese mit übertragen möchte, so muss man den Boolean header auf wahr umstellen: read.table("Pfad", header=T)

Beispiel

[Bearbeiten]

Legen Sie eine txt-Datei mit folgendem Inhalt an, indem Sie die folgenden Zeilen markieren, kopieren und in einen Texteditor einfügen:

Geschlecht Alter Gewicht Groesse
m 28 80 170
w 18 55 174
w 25 74 183
m 29 101 190
m 21 84 185
w 19 74 178
w 27 65 169
w 26 56 163
m 31 88 189
m 22 78 184

Speichern Sie diese Textdatei unter dem Namen „Tabellentest.txt“ auf Ihre Festplatte. Nun können Sie die Tabelle mit der Funktion read.table() in R einlesen:

> meinetabelle <- read.table("/Pfad/zur/Tabelle.txt", header=TRUE)

Das Argument header=TRUE besagt, dass die erste Zeile der Datei keine Daten enthält, sondern die Bezeichnungen (Variablen) der Tabellenspalten angibt.

Die Tabelle ist nun in dem Objekt meinetabelle vorhanden. Sie können sie sich ansehen, indem Sie eingeben:

> meinetabelle
Geschlecht Alter Gewicht Groesse
1           m    28      80     170
2           w    18      55     174
3           w    25      74     183
4           m    29     101     190
5           m    21      84     185
6           w    19      74     178
7           w    27      65     169
8           w    26      56     163
9           m    31      88     189
10          m    22      78     184

In unserem Beispiel waren die Daten jeweils mit einem Leerzeichen getrennt. Haben Sie eine Textdatei, in welcher die Daten durch einen Tab getrennt sind, müssen sie die read.table-Funktion um das Argument sep=“\t“ erweitern:

> meinetabelle <- read.table("/Pfad/zur/Tabelle.txt", sep=“\t“, header=TRUE)

Datenimport aus der Zwischenablage

[Bearbeiten]

Statt einer Datei kann in einigen Umgebungen auch stdin() angegeben werden. Danach wartet R auf die Eingabe von Daten. Dies ist v.a. nützlich um Tabellen aus dem Zwischenspeicher zu importieren:

> a <- read.table(file=stdin(),sep=";",dec=",",header=T)                                                                                                                 
0: Jahr;Nominell;Real        # Paste aus dem Zwischenspeicher oder manuelle Eingabe                                                                                                                                                               
1: 1901;0,96;22,60                                                                                                                                                       
2: 1902;0,8;18,11                                                                                                                                                        
3: 1903;0,94;20,50                                                                                                                                                       
4: 1904;0,86;18,76   
5:                           # Return in leerer Zeile beendet Eingabe
> a
    Jahr Nominell  Real                                                                                                                                                  
1   1901  0.96000 22.60                                                                                                                                                  
2   1902  0.80000 18.11                                                                                                                                                  
3   1903  0.94000 20.50                                                                                                                                                  
4   1904  0.86000 18.76

aus einem R-Objekt

[Bearbeiten]

Mittels des Parameters "textConnection" kann ein R-Objekt als Tabellen-Ersatz dienen:

MeineTabelle <- "Stadt;Einwohner;km2;Schulden in Mrd;Regierung
       Dortmund;580444;280,71;2,16;SPD
       Stuttgart;606588;207,36;2,8;CDU
       München;1353186;310,43;0;SPD
       Berlin;3499879;891,85;64,03;SPD und CDU
       Hamburg;1799144;755,264;24,9;SPD"
meinedaten <- read.table(textConnection(MeineTabelle), sep=";", head=T, dec=",")
head(meinedaten)

siehe auch

[Bearbeiten]