Matrix Algebra
Most of the methods on this website actually describe the programming of matrices. It is built deeply into the R language. This section will simply cover operators and functions specifically suited to linear algebra. Before proceeding you many want to review the sections on Data Types and Operators.Matrix facilites
In the following examples, A and B are matrices and x and b are a vectors.Operator or Function | Description |
A * B | Element-wise multiplication |
A %*% B | Matrix multiplication |
A %o% B | Outer product. AB' |
crossprod(A,B) crossprod(A) |
A'B and A'A respectively. |
t(A) | Transpose |
diag(x) | Creates diagonal matrix with elements of x in the principal diagonal |
diag(A) | Returns a vector containing the elements of the principal diagonal |
diag(k) | If k is a scalar, this creates a k x k identity matrix. Go figure. |
solve(A, b) | Returns vector x in the equation b = Ax (i.e., A-1b) |
solve(A) | Inverse of A where A is a square matrix. |
ginv(A) | Moore-Penrose Generalized Inverse of A. ginv(A) requires loading the MASS package. |
y<-eigen strong="">-eigen> | y$val are the eigenvalues of A y$vec are the eigenvectors of A |
y<-svd strong="">-svd> | Single value decomposition of A. y$d = vector containing the singular values of A y$u = matrix with columns contain the left singular vectors of A y$v = matrix with columns contain the right singular vectors of A |
R <- chol="" strong="">-> | Choleski factorization of A. Returns the upper triangular factor, such that R'R = A. |
y <- qr="" strong="">-> | QR decomposition of A. y$qr has an upper triangle that contains the decomposition and a lower triangle that contains information on the Q decomposition. y$rank is the rank of A. y$qraux a vector which contains additional information on Q. y$pivot contains information on the pivoting strategy used. |
cbind(A,B,...) | Combine matrices(vectors) horizontally. Returns a matrix. |
rbind(A,B,...) | Combine matrices(vectors) vertically. Returns a matrix. |
rowMeans(A) | Returns vector of row means. |
rowSums(A) | Returns vector of row sums. |
colMeans(A) | Returns vector of column means. |
colSums(A) | Returns vector of coumn means. |