Rechnen mit Vektoren und Matrizen
Rechnen mit Vektoren
Viele mathematische Operatoren sind komponentenweise definiert
> x <- 1:6
> x + 2
## [1] 3 4 5 6 7 8
> (y <- rep(10, 6))
## [1] 10 10 10 10 10 10
> x * y
## [1] 10 20 30 40 50 60
Sind die verwendeten Vektoren nicht gleich lang, so wird der kürzere Vektor zyklisch fortgesetzt, wie man hier sieht
> y / c(5,10)
## [1] 2 1 2 1 2 1
Ebenso arbeiten zahlreiche Funktionen komponentenweise auf einem Vektor
> c(exp(1:3), sin(1:3))
## [1] 2.7182818 7.3890561 20.0855369 0.8414710 0.9092974 0.1411200
Andere Funktionen berechnen schnell skalare Zusammenfassungen von Vektoren, z.B.
> max(x)
## [1] 6
> sum(x)
## [1] 21
> mean(x)
## [1] 3.5
Funktion | Beschreibung |
---|---|
sum() |
Summe der Elemente |
prod() |
Produkt der Elemente |
max(), min() |
Maximum, Minimum |
union() |
Vereinigung der Elemente zweier Vektoren |
intersect() |
Schnitt der Elemente zweier Vektoren |
rev() |
Reihenfolge invertieren |
sort() |
Sortieren |
order() |
Reihenfolge im unsortierten Vektor |
... | ... |
Rechnen mit Matrizen
%*%
bezeichnet die Matrixmultiplikation. Die Inverse einer Matrix berechnet man mit solve()
.
> A <- c(1, 2, 2, 1)
> dim(A) <- c(2,2)
> (A_inv <- solve(A))
## [,1] [,2]
## [1,] -0.3333333 0.6666667
## [2,] 0.6666667 -0.3333333
> A_inv %*% A
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
Die Funktion crossprod()
berechnet für die Eingabe x
und y
den Befehl t(x) %*% y
. Handelt es sich bei x
und y
um eindimensionale Vektoren, so ist dies nichts anderers als das Skalarprodukt dieser Vektoren.
> t(2:4)
## [,1] [,2] [,3]
## [1,] 2 3 4
> t(2:4) %*% 1:3
## [,1]
## [1,] 20
> crossprod(2:4, 1:3)
## [,1]
## [1,] 20
tcrossprod()
hingegen berechnet x %*% t(y)
.
> tcrossprod(2:4, 1:3)
## [,1] [,2] [,3]
## [1,] 2 4 6
## [2,] 3 6 9
## [3,] 4 8 12
Funktion | Beschreibung |
---|---|
t() |
Transponierte Matrix |
det() |
Determinante |
solve() |
Matrixinverse |
solve(A,b) |
Löst das Gleichungssystem |
crossprod(X,Y) |
|
tcrossprod(X,Y) |
|
qr() |
QR-Zerlegung |
eigen() |
Eigenwerte und -vektoren |
%*% |
Matrixmultiplikation |
nrow(), ncol() |
Zeilen-, Spaltenanzahl |