Wie Extrahieren von Werten aus einer Matrix in R

Sie können diese Indizes auf die gleiche Weise Vektoren in R. verwenden verwenden Sie ordnen können und Extraktwerte, verwenden Sie numerische oder logische Indizes, Werte fallen durch ein Minuszeichen verwenden, und so weiter.

Wie numerische Indizes in R zu verwenden,

Zum Beispiel können Sie die Werte in den ersten beiden Reihen und den letzten beiden Spalten mit dem folgenden Code extrahieren:

> First.matrix [1: 2, 2: 3] [1] [2] [1,] 4 7 [2] 5 8

R liefert Ihnen eine wieder Matrix. Achten Sie auf die Indizes dieser neuen Matrix - sie sind nicht die Indizes der ursprünglichen Matrix mehr.

R gibt Ihnen eine einfache Möglichkeit, komplette Zeilen und Spalten aus einer Matrix zu extrahieren. Sie haben einfach nicht die andere Dimension angeben. Also, Sie die zweite und dritte Reihe von Ihrer ersten Matrix wie diese:

> First.matrix [2: 3] [1] [2] [3] [4] [1] 2 5 8 11 [2] 3 6 9 12

Wie Werte mit negativen Indizes fallen

Sie können die Werte in einem Vektor fallen durch einen negativen Wert für den Index. Dieser kleine Trick funktioniert sehr gut mit Matrizen, auch. So können Sie alle Werte mit Ausnahme der zweiten Reihe zu bekommen und dritte Spalte first.matrix so was:

> First.matrix [-2, -3] [1] [2] [3] [1] 1 4 10 [2] 3 6 12

Mit Matrizen bedeutet ein negativer Index immer: # 147-Drop die komplette Zeile oder Spalte. # 148- Wenn Sie nur das Element in der zweiten Reihe und der dritten Spalte löschen möchten, haben Sie die Matrix wie ein Vektor zu behandeln. So, in diesem Fall fallen sie das zweite Element in der dritten Spalte wie folgt aus:

> nr lt; - nrow (first.matrix)> id lt; - nr * 2 + 2> first.matrix [-id] [1] 1 2 3 4 5 6 7 9 10 11 12

Dies liefert einen Vektor, da die 11 übrigen Elemente mehr nicht in eine Matrix passen. Nun geschah, was hier genau? Denken Sie daran, dass Matrizen spaltenweise gelesen werden. Um das zweite Element in der dritten Spalte zu erhalten, müssen Sie Folgendes tun:

  1. Zählen die Anzahl von Zeilen unter Verwendung von nrow (), und speichern, daß in einer Variablen - beispiels nr.

    Sie müssen dies nicht tun, aber es macht den Code leichter zu lesen.

  2. Zählen Sie zwei Spalten und dann 2 hinzufügen, um das zweite Element in der dritten Spalte zu erhalten.

    Erneut speichern, dieses Ergebnis in einer Variablen (beispielsweise Ich würde).

  3. Verwenden Sie den eindimensionalen Vektor-Extraktion [] diesen Wert fallen.

Sie können dies in einer Zeile zu tun, wie folgt aus:

> First.matrix [- (2 * nrow (first.matrix) + 2)] [1] 1 2 3 4 5 6 7 9 10 11 12

Dies ist nur ein Beispiel dafür, wie man mit den Indizes arbeiten können, während eine Matrix wie ein Vektor behandelt werden. Es erfordert ein wenig auf den ersten Denk, aber Tricks wie diese können sehr ordentlich Lösungen komplexer Probleme bieten als gut, vor allem, wenn Sie Ihren Code müssen so schnell wie möglich auszuführen.

Menü