Indexing

Wie Matrizen sind auch DataFrames zwei-dimensional, also benutzen wir hier auch zwei Zahlen innerhalb der [] Klammern.

Lass uns zunächst den DataFrame erstellen:

name <- c("Marc", "Thomas", "Leon", "Rüdiger")
age <- c(25, 23, 26, 26)
child <- c(FALSE, TRUE, FALSE, TRUE)

df <- data.frame(name, age, child)
     name age child
1    Marc  25 FALSE
2  Thomas  23  TRUE
3    Leon  26 FALSE
4 Rüdiger  26  TRUE

Wie bei Matrizen, um das Alter von Leon zu bekommen, geben wir innerhalb der [] Klammern erst die Zeile (row) und dann die Spalte (column) ein.

df[3, 2]
[1] 26

Wir können aber auch den Namen der Spalte verwenden, anstelle einer Zahl:

df[3, "age"]
[1] 26

Mit Vektoren als Indexe können wir auch mehrer Zeilen und Spalten bekommen. Im Falle von DataFrames haben wir auch die Möglichkeit einen Vektor mit den Namen für die Spalten zu verwenden.

df[c(2, 4), c("name", "child")]
     name child
2  Thomas  TRUE
4 Rüdiger  TRUE

TODO

df[3,]
df[3]
df[,3]
df[,"child"]

Ähnlich wie bei Listen können wir auch bei DataFrames $ und [[]] benutzen, um alle Werte einer Spalte (column) als Vektor zu bekommen.

df$name       # Console: [1] "Marc" "Thomas" "Leon" "Rüdiger"
df[["name"]]  # Console: [1] "Marc" "Thomas" "Leon" "Rüdiger" 
df[[1]]       # Console: [1] "Marc" "Thomas" "Leon" "Rüdiger"