A matrix is like a vector, but in two dimensions. To enter a matrix in S-PLUS, enter a vector of data and the dimensions of the matrix. For example:
> matrix(c(1:9), nrow=3,ncol=3,byrow=T) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9In the above example, the ``by row'' argument tells S-PLUS to read the data in by row. The default is to read it by column, which would have resulted in:
> matrix(c(1:9),nrow=3,ncol=3) [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9Vectors can be converted into matrices, by using the
as.matrix
function. This function changes a vector of length n into an n by 1
matrix. The as.vector
function can be used to change a matrix
into a vector (by reading down the columns, from left to right).
Matrices have two attributes: the dimensions of the matrix, and the names for the rows and columns.
> bulls <- matrix(c("Ron", "Michael", "Scottie", "Dennis", "Luc", "Steve", "Toni", "Jud", "John", "Bill"), nrow=2, ncol=5, byrow=T) > bulls [,1] [,2] [,3] [,4] [,5] [1,] "Ron" "Michael" "Scottie" "Dennis" "Luc" [2,] "Steve" "Toni" "Jud" "John" "Bill"To check the dimensions of a matrix, use the function
dim
.
> dim(bulls) [1] 2 5Use the function
dimnames
to see or change the row and column names.
Note that dimension names must be entered as a list (see next section).
> dimnames(bulls) NULL > dimnames(bulls) <- list(c("Starters","Bench"),c("PG","SG","SF","PF","C")) > bulls PG SG SF PF C Starters "Ron" "Michael" "Scottie" "Dennis" "Luc" Bench "Steve" "Toni" "Jud" "John" "Bill" > dimnames(bulls) [[1]]: [1] "Starters" "Bench" [[2]]: [1] "PG" "SG" "SF" "PF" "C"