Dataframe-Indexierung
In dieser Session wollen wir die Indexierung von Dataframes lernen um Daten aus unseren Tabellen gezielt auswählen zu können.
Spalten indexieren
Zuerst wollen wir uns ein Dataframe erstellen. Hierzu nutzen wir wieder den mtcars-Datensatz:
Data <- mtcars
Um eine ganze Spalte eines Dataframes auszuwählen, können wir das $-Zeichen verwenden. Wenn wir zum Beispiel die Spalte “mpg” auswählen wollen und die Elemente der Spalte in einen neuen Vektor einbetten wollen, schreiben wir:
MPG <- Data$mpg
Die eckigen Klammern [ ]
Wie beim indexieren von Vektoren, können wir die eckigen Klammern auch zur Indexierung von Dataframes benutzen. Dabei gilt die allgemeine Form:
[Zeile , Spalte]
Als erstes Beispiel wollen wir den Wert, der in der 3. Zeile und 4. Spalte unseres Dataframes steht extrahieren:
Data[3, 4]
## [1] 93
Wie bei den Vektoren können wir auch die von:bis-Schreibweise sowie die “-”-Schreibweise verwenden:
Data[1:3, 2:5]
## cyl disp hp drat
## Mazda RX4 6 160 110 3.90
## Mazda RX4 Wag 6 160 110 3.90
## Datsun 710 4 108 93 3.85
Data1 <- Data[-3, -6]
head(Data1)
## mpg cyl disp hp drat qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 17.02 0 1 4 4
## Hornet 4 Drive 21.4 6 258 110 3.08 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 20.22 1 0 3 1
## Duster 360 14.3 8 360 245 3.21 15.84 0 0 3 4
Natürlich können wir analog zu den Vektoren auch die combine-Funktion verwenden:
Data[c(1, 3, 5), c(2, 4, 6)]
## cyl hp wt
## Mazda RX4 6 110 2.62
## Datsun 710 4 93 2.32
## Hornet Sportabout 8 175 3.44
Indexierung über Spaltennamen
Neben dem $-Zeichen kann man auch den Spaltennamen in die eckigen Klammern schreiben:
Zylinder <- Data["cyl"]
Data2 <- Data[c("cyl", "hp", "wt")]
head(Data2)
## cyl hp wt
## Mazda RX4 6 110 2.620
## Mazda RX4 Wag 6 110 2.875
## Datsun 710 4 93 2.320
## Hornet 4 Drive 6 110 3.215
## Hornet Sportabout 8 175 3.440
## Valiant 6 105 3.460