这似乎应该很容易,但我无法弄清楚.我想总结我的矩阵中具有相同名称的所有列.因此,在下面的示例中,我想最终得到另一个只有三列的矩阵.
set.seed(4)
z<-matrix(sample(1:10,20, replace=T), nrow=4)
colnames(z)<-c("a","c","b","a","b")
z
a c b a b
[1,] 6 9 10 2 10
[2,] 1 3 1 10 6
[3,] 3 8 8 5 10
[4,] 3 10 3 5 8
Run Code Online (Sandbox Code Playgroud)
应该产量:
a c b
[1,] 8 9 20
[2,] 11 3 7
[3,] 8 8 18
[4,] 8 10 11
Run Code Online (Sandbox Code Playgroud)
我试过了:
z<-aggregate(colnames(z), data=z, sum)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.如果可能的话,我更愿意使用基数R.
您可以rowsum将列名称用作group变量:
t(rowsum(t(z), colnames(z)))
# a b c
#[1,] 8 20 9
#[2,] 11 7 3
#[3,] 8 18 8
#[4,] 8 11 10
Run Code Online (Sandbox Code Playgroud)