Indexing

Matrizen sind eigentlich nichts anderes als Vektoren, aber nur zwei-dimensional. Sprich, um ein Wert von einer Matrix zu bekommen, schreibt man zwei Zahlen in die [] Klammern. Die erste Zahl für die Zeile (row) und die zweite Zahl für die Spalte (column).

x <- matrix(data = 1:16, 
            nrow = 4, 
            ncol = 4)

# x[row, column]
x[1, 2]  # Console: [1] 3

Um eine komplette Zeile zu bekommen, lässt du einfach die zweite Zahl leer. Du musst aber trotzdem das Komma stehen lassen:

x[1,]  # Console: [1] 1 3

Um eine komplette Spalte zu bekommen, machst du das selbe nur umgedreht:

x[,1]  # Console: [1] 1 2

Wie im Kapitel 5.4.1 Indexing von Vektoren besprochen, kann man auch eine Range oder einen Vektor in die [] Klammern schreiben, um, in diesen Fall, mehrere Zeilen oder Spalten aufeinmal zu bekommen.

So bekommen wir Zeile 3 und 4 mit allen Spalten:

x[3:4,]
     [,1] [,2] [,3] [,4]
[1,]    3    7   11   15
[2,]    4    8   12   16

Und so bekommen wir die Spalte 3 und 4 mit allen Zeilen:

x[,3:4]
     [,1] [,2]
[1,]    9   13
[2,]   10   14
[3,]   11   15
[4,]   12   16

Genauso wie bei Vektoren, können wir auch mit einer Minuszahl Zeilen oder Spalten ausschließen.

x[-4, -4]
     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11

Zu guter letzt zeige ich dir noch wie du Werte einer Matrix überschreiben kannst.

Um einen einzige Stelle zu überschreiben:

x[1, 1] = 420
     [,1] [,2] [,3] [,4]
[1,]  420    5    9   13
[2,]    2    6   10   14
[3,]    3    7   11   15
[4,]    4    8   12   16

Oder eine komplette Reihe:

# Eine komplette Zeile überschreiben:
x[1,] = c(420, 420, 420, 420)

# Eine komplette Spalte überschreiben:
x[,4] = c(68, 68, 68, 68)
     [,1] [,2] [,3] [,4]
[1,]  420  420  420   68
[2,]    2    6   10   68
[3,]    3    7   11   68
[4,]    4    8   12   68