Wie Matrix Arithmetik in R zu tun

Neben den klassischen arithmetischen Operatoren enthält R einen großen Satz von Operatoren und Funktionen ein breites Spektrum von Matrix-Operationen durchzuführen. Viele dieser Operationen werden in fortgeschrittener Mathematik verwendet, so können Sie sie nie brauchen. Einige von ihnen können ziemlich nützlich sein, in, obwohl, wenn Sie um Daten zu kippen müssen, oder Sie wollen sich einige Statistiken zu berechnen.

Transponieren einer Matrix in R

Flipping um eine Matrix, so dass die Zeilen zu Spalten und umgekehrt ist es sehr einfach in R. Die t () Funktion (das steht für transponieren) Macht die ganze Arbeit für Sie:

> T (first.matrix) [1] [2] [3] [1] 1 2 3 [2] 4 5 6 [3] 7 8 9 [4] 10 11 12

Sie können versuchen, diese mit einem Vektor, auch. Als Matrizen gelesen und spaltenweise gefüllt ist, sollte es nicht überraschend, dass die t () Funktion sieht einen Vektor wie einem einspaltigen Matrix. Die Transponierte eines Vektors ist also eine einzeilige matrix:

> T (1:10) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [1, 1] 2 3 4 5 6 7 8 9 10

Sie können sagen, dass dies eine Matrix von den Dimensionen ist. Diese Information scheint durch die Art und Weise trivial, aber stellen Sie sich nur eine Zeile aus einer Matrix sind die Auswahl und ihrer Umsetzung. Im Gegensatz zu, was man erwarten würde, erhalten Sie eine Zeile statt einer Spalte:

> T (first.matrix [2]) [1] [2] [3] [4] [1] 2 5 8 11

Invert eine Matrix, in R

Im Gegensatz zu Ihrer Intuition, eine Matrix invertieren von nicht getan, um es auf die Leistung von -1 zu erheben, gilt R normalerweise die arithmetischen Operatoren elementweise auf der Matrix. So wird der Befehl first.matrix ^ (- 1) nicht geben Sie die Umkehrung des Matrix- statt, es gibt Ihnen die Umkehrung der Elemente. Um eine Matrix invertieren, verwenden Sie die lösen() Funktion, wie folgt aus:

> square.matrix lt; - Matrix (c (1,0,3,2,2,4,3,2,1), ncol = 3)> lösen (square.matrix) [1] [2] [3] [ 1] 0,5 -,8333333 0,1666667 [2] -0,5 0,6666667 0,1666667 [3] 0,5 -,1666667 -,1666667

Seien Sie vorsichtig, da die Gefahr von Rundungsfehlern eine Matrix wie dies umgekehrt wird. R berechnet die meisten Statistiken auf Basis von Zersetzungen wie der QR-Zerlegung, Zersetzung Single-Wert, und Cholesky-Zerlegung. Sie können tun, dass Sie sich mit den Funktionen qr (), SVD (), und Chol (), beziehungsweise. Überprüfen Sie die entsprechenden Hilfeseiten für weitere Informationen.

Multiplizieren Sie zwei Matrizen in R

Der Multiplikationsoperator (*) Arbeitet elementweise auf Matrizen. Um das innere Produkt zweier Matrizen zu berechnen, verwenden Sie den speziellen Operator % *%, so was:

> First.matrix% *% t (second.matrix) [1] [2] [3] [1] 22 44 66 [2] 26 52 78 [3] 30 60 90

Sie müssen das umsetzen second.matrix Erst- sonst haben beide Matrizen nicht anpassungs Dimensionen. Multiplizieren einer Matrix mit einem Vektor ein Bit eines speziellen Fall- wird, solange die Abmessungen passen, werden R konvertieren automatisch den Vektor entweder einer Reihe oder einer Spalte Matrix, was in diesem Fall anwendbar ist. Sie können im folgenden Beispiel für sich selbst überprüfen:

> First.matrix% *% 1: 4 [1] [1] 70 [2] 80 [3] 90> 1: 3% *% first.matrix [1] [2] [3 ] [4] [1] 14 32 50 68
» » » » Wie Matrix Arithmetik in R zu tun