2.5.5 与矩阵(数组)运算有关的函数
A<-array(1:9,dim = (c(3,3)))
1.取矩阵的维数
dim(A) #矩阵A的维数
nrow(A) #矩阵A的行数
ncol(A) #矩阵A的列数
2.矩阵合并
cbind()把自变量横向拼成一个的矩阵,
cbind()的自变量是矩阵或看作列向量的向量时,自变量的高度应该是相等的。
x1<-cbind(c(1,2),c(3,4));x1
rbind()把自变量纵向拼成一个的矩阵,
rbind()的自变量是矩阵或看作行向量的向量时,自变量的高度应该是相等的。
x2<-rbind(c(1,2),c(3,4));x2
rbind(x1,x2)
cbind(x1,x2)
3.矩阵的拉直(转换为向量)
as.vector(A)
4.数组的维名字(修改)
数组属性中,dimnames各维的各个下标的名字,缺省时为NULL
方式1:利用matrix
x<-matrix(1:6,ncol=2,dimnames = list(c("one","two","three"),c("First","Second")),byrow = T);x
方式2:利用dimnames()来为矩阵命名
x<-matrix(1:6,ncol = 2,byrow = T);x
dimnames(x)<-list(c("one","two","three"),c("First","Second"));x
方式3:分别利用rownames和colnames来访问行名与列名
x<-matrix(1:6,ncol = 2,byrow = T)
colnames(x)<-c("First","Second")
rownames(x)<-c("one","two","three");x
5.数组的广义转置
aperm(A,perm)函数数组A各维度按照perm中指定的新次序重新排列,
A<-array(1:24,dim=c(2,3,4));A
B<-aperm(A,c(2,3,1));B
B[i,j,k]=A[j,k,i] 问题部分
aperm(A,c(2,1))恰好是即t(A)
6.apply()函数
对于向量,可以用sum,mean等函数对其进行计算。
对于数组(矩阵),如果想对其 以为进行某种计算,可用apply函数
apply(X, MARGIN, FUN, ...)
A一个数组,MARGIN是固定哪些维不变,FUN是用来计算的函数,
A<-matrix(1:6,nrow=2);A
apply(A,1,sum) #行求和 1表示行求和
apply(A,2,mean) #列求平均值
网友评论