R中的数组就是多维的矩阵。
创建方式如下
> x <- c(1:20)
> dim(x) <-c(2,2,5)
> x
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8
, , 3
[,1] [,2]
[1,] 9 11
[2,] 10 12
, , 4
[,1] [,2]
[1,] 13 15
[2,] 14 16
, , 5
[,1] [,2]
[1,] 17 19
[2,] 18 20
可以利用array()函数来创建。
array (vector,dimensions,dimnames)
> dim1 <-c('a1','a2')
> dim2 <-c('b1','b2','b3')
> dim3 <-c('c1','c2','c3','c4')
> z<-array(1:24,c(2,3,4),dimnames = list(dim1,dim2,dim3))
> z
, , c1
b1 b2 b3
a1 1 3 5
a2 2 4 6
, , c2
b1 b2 b3
a1 7 9 11
a2 8 10 12
, , c3
b1 b2 b3
a1 13 15 17
a2 14 16 18
, , c4
b1 b2 b3
a1 19 21 23
a2 20 22 24
其余操作与矩阵类似
> x[1,,]#所有矩阵的第一行
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 3 7 11 15 19
> x[,1,]#所有矩阵的第一列
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
> x[,,1]#第一个矩阵
[,1] [,2]
[1,] 1 3
[2,] 2 4
> x[1,1]
Error in x[1, 1] : incorrect number of dimensions
> x[1,,1]#第一个矩阵的第一行
[1] 1 3
> x[1,1,]#所有矩阵的第一行第一列
[1] 1 5 9 13 17