Filling Matrices
To make a 4x5 matrix filled with zeroes, it would look like:
> matrix(0, 4, 5)
	[,1]	[,2]	[,3]	[,4]	[,5]
[1,]	0	0	0	0	0
[2,]	0	0	0	0	0
[3,]	0	0	0	0	0
[4,]	0	0	0	0	0
If you wanted to have a matrix with values specified, store those values as a
vector first.
The following example specifies a vector, a, as a sequence from 1 to 20,
and then stores it as a matrix.
> a <- 1:20
> matrix(a, 4, 5)
	[,1]	[,2]	[,3]	[,4]	[,5]
[1,]	1	5	9	13	17
[2,]	2	6	10	14	18
[3,]	3	7	11	15	19
[4,]	4	8	12	16	20
Determinants and Eigen-stuff
The determinant can be taken on a matrix. If the variable has been defined, but not yet placed in a matrix, both steps must be done at once.
> a<-1:25
> det(matrix(a,5,5))
[1] 0
The eigen function (I know, I’m laughing too) computes both eigenvalues and
eigenvectors. If the matrix is symmetric, then include symmetric=TRUE to
skip the symmetry check.
> eigen(matrix(a,5,5))
eigen() decomposition
$values
[1]  6.864208e+01+0.000000e+00i -3.642081e+00+0.000000e+00i
[3]  4.257350e-15+0.000000e+00i -1.270981e-16+4.588876e-16i
[5] -1.270981e-16-4.588876e-16i
$vectors
             [,1]           [,2]           [,3]                  [,4]
[1,] 0.3800509+0i -0.76703416+0i  0.54621260+0i  0.1175132+0.0459634i
[2,] 0.4124552+0i -0.48590617+0i -0.27228461+0i  0.4017692+0.0065072i
[3,] 0.4448594+0i -0.20477817+0i -0.66418830+0i -0.7435988+0.0000000i
[4,] 0.4772637+0i  0.07634982+0i -0.03961996+0i -0.1881630-0.2033750i
[5,] 0.5096680+0i  0.35747782+0i  0.42988027+0i  0.4124793+0.1509044i
                      [,5]
[1,]  0.1175132-0.0459634i
[2,]  0.4017692-0.0065072i
[3,] -0.7435988+0.0000000i
[4,] -0.1881630+0.2033750i
[5,]  0.4124793-0.1509044i
Matrix Multiplication
For element-wise multiplication, simply use the A*B format.
To multiply matrices, you would use the %*% symbol. The outer product
(AB’) can be obtained using the %o% symbol.
> a <- 1:20
> b <- 21:40
> matrix(a, 4, 5)
	[,1]	[,2]	[,3]	[,4]	[,5]
[1,]	1	5	9	13	17
[2,]	2	6	10	14	18
[3,]	3	7	11	15	19
[4,]	4	8	12	16	20
> matrix(b, 5, 4)
     [,1] [,2] [,3] [,4]
[1,]   21   26   31   36
[2,]   22   27   32   37
[3,]   23   28   33   38
[4,]   24   29   34   39
[5,]   25   30   35   40
> a%*%b
     [,1]
[1,] 7070
Other Matrix Operations
Different formats are given, where A and B are matrices, and k is a
scalar.
Table: Formats for Matrices
| Command | Function | 
|---|---|
t(A) | 
      transpose | 
crossprod(A,B) | 
      A’B | 
crossprod(A) | 
      A’A | 
solve(A) | 
      Inverse of A (if A is a square matrix) | 
solve(A, b) | 
      Returns x vector in b = Ax equation | 
diag(A) | 
      Vector with elements of principal diagonal | 
diag(K) | 
      Creates the k x k identity matrix | 
rowMeans(A) | 
      Vector of row means | 
rowSums(A) | 
      Vector of row sums | 
columnMeans(A) | 
      Vector of column means | 
columnSums(A) | 
      Vector of column sums | 
rowbind(A,B,...) | 
      Combines matrices or vectors vertically, returning a matrix | 
cbind(A,B,...) | 
      Combines matrices or vectors horizontally, returning a matrix | 
Writing Information to a File
Data, usually matrix data, are written to a file using the write command.
In it, the original data vector is specified, then the file name, and then the
delimiter. Tabs are specified through \t, but other separators can be used if
placed in the quotes.
> write(mydata, "mydata.txt", sep="\t")
Files can also be written using write.csv() and write.table().