数组
向量是1维数组,矩阵是二维数组,数组的维数可以大于2
数组的生成(array)
格式:
数组名 <- array(数组元素, dim=c(第一下标个数, 第二下标个数, ..., 第s下标个数))
其中数组元素的填入次序是第一下标变化最快, 第二下标次之, 最后一个下标是变化最慢的。 这种次序称为FORTRAN次序。
> X<-array(1:12,dim=c(2,3,2))
> X
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
相当于2个2×3矩阵
使用dim函数生成数组
> x<-1:20
> dim(x)<-c(2,5,2)
> x
, , 1
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
, , 2
[,1] [,2] [,3] [,4] [,5]
[1,] 11 13 15 17 19
[2,] 12 14 16 18 20
可以想象为一个长宽高分别为2,5,2的长方体
多维数组的子集操作
创建一个数组
> x<-array(1:12,dim=c(2,3,2))
> x
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
选取数组的第一个矩阵
> x1<-x[,,1]
> x1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
选取第二个矩阵的第2列和第3列
> x2<-x[,2:3,2]
> x2
[,1] [,2]
[1,] 9 11
[2,] 10 12
选取第2个矩阵中索引为[1,1]的元素
> x3<-x[1,1,2]
> x3
[1] 7
防止降维
> x3<-x[1,1,2,drop=FALSE]
> x3
, , 1
[,1]
[1,] 7