R 矩阵数组

 A<-matrix(11:16,nrow=3,ncol=2)  # 实际按向量存储,根据保存的行数,列数对应到矩阵的元素,存储次序默认是按列存储。

 

 B<-matrix(c(1,-1,1,1),nrow=2,ncol=2,byrow=TRUE) #设置byrow=TRUE,则按行存储

 

取矩阵的行数 nrow(A) 

取矩阵列数 ncol(A)

取矩阵行数 列数 dim(A) 返回数组

 

t(A)  转置  

 

 

取矩阵的第一行 A[1,]

取矩阵第一列 A[,1]

取指定行、列 A[c(1,3),1:2]

 

 

给矩阵的列名、行名赋值后可以按行、列名取值

colnames(A)<-c('X','Y')

rownames(A)<-c('a','b','c')

dimnames(A) 取行名向量、 列名向量

A[,'Y']  取Y列

A['b',] 取b行

A[c('a','c'),'Y'] 取 a、b行的Y列

注:取出子集仅有1行或1列,结果就不再是矩阵还是变成了向量。

 A[,1,drop=FALSE] #即时一行/一列 也要维持矩阵

 

 

 按逻辑/布尔值 取子集  如  A[A[,1]>=12,'Y'] #A[,1]表示第一列>12的那些观测行 。

 

 

 

 因为矩阵的实际保存按向量,所以可以按如此取子集A[c(1,3,5)]

 

还可以按一个两列矩阵的行观测作为下标取值。

如:

   ind<-matrix(c(1,1,2,2,3,2),ncol=2,byrow = TRUE)

  A[ind]

 

要取A所有元素 A[] 或c(A) 

 

 

要修改元素如 A[1,2]<-3

 

posted on 2022-01-31 10:01  BioinformaticsMaster  阅读(37)  评论(0编辑  收藏  举报

导航