元素可以保存在多个维度的对象中,数组存储的是多维数据元素,矩阵的是数组的特殊情况,它具有两维。
创建数组的几种方法。
-
1.
> m<-c(45,23,66,77,33,44,56,12,78,23)
> dim(m)<-c(2,5)
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 45 66 33 56 78
[2,] 23 77 44 12 23 -
2.
> m<-matrix(c(45,23,66,77,33,44,56,12,78,23),2,5)
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 45 66 33 56 78
[2,] 23 77 44 12 23 -
3.观察上面的结果,发现默认的是首先按照列排列出矩阵的,如何按照行排列呢??
> m<-matrix(c(45,23,66,77,33,44,56,12,78,23),2,5,byrow=T)
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 45 23 66 77 33
[2,] 44 56 12 78 23 提取矩阵中的元素
> m[2,3]
[1] 12
> m[2,-1]#排除第一列
[1] 56 12 78 23
> m[-2,1]#排除第二行
[1] 45- 取某列:
> m[,1]
[1] 45 44
- 取某列,并且看它为矩阵:
> m[,1,drop=F]
[,1]
[1,] 45
[2,] 44
- cbind(),rbind()#按照列,行排列
- 设置行列的名字:
> m<-matrix(c(45,23,66,77,33,44,56,12,78,23),2,5)
> rownames(m)<-c('row1','row2')
> colnames(m)<-c('c1','c2','c3','c4','c5')
> m
c1 c2 c3 c4 c5
row1 45 66 33 56 78
row2 23 77 44 12 23
> m["row1",]
c1 c2 c3 c4 c5
45 66 33 56 78
数组是矩阵的扩展,它可以扩展到两维以上。(其操作类似于矩阵)
-
> a<-array(1:24,dim=c(4,3,2))
> a
, , 1[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12, , 2
[,1] [,2] [,3]
[1,] 13 17 21
[2,] 14 18 22
[3,] 15 19 23
[4,] 16 20 24> a[1,3,2]
[1] 21
> a[1,-1,2]
[1] 17 21