生成一个新矩阵,多用一些参数吧这次:
x <- c(12,13,14,15)
rname <- c("R1","R2")
nname <- c("C1","C2")
newmatrix <- matrix(x,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rname,nname))
##nrow 是规定矩阵有几行
##ncol是规定矩阵有几列
##byrow是规定你的矩阵是一行一行的去填充。(默认是一列一列的去填充)
##dimnames是规定行名和列名
ok解决
C1 C2
R1 12 13
R2 14 15
newmatrix[2,] ##有14 15输出 ,很简单有木有
newmatrix[1,2] ##输出13,先行后列读入
可以在复杂一点,把两个或多个矩阵组合在一起,就是-----“多维数组“
使用array函数生成
fristarray <- array(1;24,c(3,2,4)) #还有别的参数没写
, , 1
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
, , 2
[,1] [,2]
[1,] 7 10
[2,] 8 11
[3,] 9 12
, , 3
[,1] [,2]
[1,] 13 16
[2,] 14 17
[3,] 15 18
, , 4
[,1] [,2]
[1,] 19 22
[2,] 20 23
[3,] 21 24
可以看出来c(3,2,4)里面的数字都是什么意思
第一个:每一层数据有几行
第二个:每一层数据有几列
第三个:共有几层
还可设置名字
dim1 <- c("A1","A2","A3")
dim2 <- c("B1","B2")
dim3 <- c("C1","C2","C3","C4")
oo <- 1:24
renewarray <- array(data=oo,dim=c(3,2,4),dimnames = list(dim1,dim2,dim3))
##data如果多的话就要data=c(数据1,数据2,...)
##生成下面的东西
, , C1
B1 B2
A1 1 4
A2 2 5
A3 3 6
, , C2
B1 B2
A1 7 10
A2 8 11
A3 9 12
, , C3
B1 B2
A1 13 16
A2 14 17
A3 15 18
, , C4
B1 B2
A1 19 22
A2 20 23
A3 21 24
找22这个数字要输入什么呢? renewarray[1,2,4]
先输入第几行,然后是第几列,最后是第几层,22这个数是第一行、第二列、第四层。
c(3,2,4)这个参数最后会成为数组的dim属性
输入attributes(renewarray)
会有下面的输出
$dim
[1] 3 2 4