首页 > 解决方案 > R:使用 data.frame 的矩阵聚合

问题描述

我想使用E的dimnames聚合矩阵E。如果E是矩阵,我可以聚合,但我不知道E是否是data.frame。请让我知道如何使用 data.frame 做同样的事情。

> E
   a1 a1 a2 a2
a1  1  5  9 13
a1  2  6 10 14
a2  3  7 11 15
a2  4  8 12 16

ef <- outer(colnames(E), row.names(E), paste)
ef
     [,1]    [,2]    [,3]    [,4]   
[1,] "a1 a1" "a1 a1" "a1 a2" "a1 a2"
[2,] "a1 a1" "a1 a1" "a1 a2" "a1 a2"
[3,] "a2 a1" "a2 a1" "a2 a2" "a2 a2"
[4,] "a2 a1" "a2 a1" "a2 a2" "a2 a2"

F <- matrix(c(tapply(E, ef, sum)), nrow=length(unique(row.names(E))), byrow=T)
> F
     [,1] [,2]
[1,]   14   46
[2,]   22   54

标签: rdataframesumtapply

解决方案


推荐阅读