如何在R中按行名汇总矩阵列?
要按行名汇总矩阵列,我们可以将colSums与sapply一起使用并转置输出。例如,如果我们有一个名为M的矩阵,则可以使用t(sapply(by(M rownames(M),,colSums),identity))完成按行名称汇总的矩阵列。
例1
考虑下面的矩阵-
> M1<-matrix(rpois(40,2),ncol=2)输出结果> rownames(M1)<-sample(c("A","B","C","D"),20,replace=TRUE)
> M1
[,1] [,2]B 4 6
D 2 1
B 1 5
C 0 0
A 2 3
B 1 0
B 5 3
D 1 3
C 0 1
C 0 2
D 1 1
B 7 2
C 2 3
C 2 3
C 2 2
C 1 2
B 1 1
C 5 3
D 2 2
D 5 2
通过行名查找M1的集合-
> t(sapply(by(M1,rownames(M1),colSums),identity))输出结果
V1 V2A 2 3
B 19 17
C 12 16
D 11 9
例2
> M2<-matrix(rpois(40,10),ncol=2)输出结果> rownames(M2)<-sample(c("S1","S2","S3"),20,replace=TRUE)
> M2
[,1] [,2]S1 6 10
S3 7 11
S3 13 6
S1 9 9
S2 11 9
S3 6 8
S1 4 5
S3 8 12
S2 14 8
S3 11 7
S1 15 12
S3 8 13
S3 9 10
S1 10 8
S2 14 18
S1 13 10
S1 10 4
S3 12 7
S2 5 9
S3 13 8
通过行名找到M2的集合-
> t(sapply(by(M2,rownames(M2),colSums),identity))输出结果
V1 V2S1 67 58
S2 44 44
S3 87 82
以上是 如何在R中按行名汇总矩阵列? 的全部内容, 来源链接: utcz.com/z/313953.html