2.5.5 与矩阵(数组)运算有关的函数

2017-05-18  本文已影响0人  Andrew_bao

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) #列求平均值

上一篇下一篇

猜你喜欢

热点阅读