按组计算R中的行和列矩阵和
我有一个矩阵按组计算R中的行和列矩阵和,r,matrix,sum,rowsum,R,Matrix,Sum,Rowsum,我有一个矩阵矩阵,有两个级别分组,如行和列名所示 UKC1_SS1 UKC1_SS2 UKC2_SS1 UKC2_SS2 UKC1_SS1 1 2 3 4 UKC1_SS2 5 6 7 8 UKC2_SS1 9 10 11 12 UKC2_SS2 13
矩阵
,有两个级别分组,如行和列名所示
UKC1_SS1 UKC1_SS2 UKC2_SS1 UKC2_SS2
UKC1_SS1 1 2 3 4
UKC1_SS2 5 6 7 8
UKC2_SS1 9 10 11 12
UKC2_SS2 13 14 15 16
我想创建一个表,其中列和行的总和基于列和行名称的前四位数字:
UKC1 UKC2
UKC1 14 22
UKC2 46 54
我试着按顺序计算rowsums
和colSums
sum.matrix <- rowsum(matrix, substr(rownames(matrix), start = 1, stop = 4))
sum.matrix <- colSums(sum.matrix, substr(colnames(test), start = 1, stop = 4)
sum.matrix在使用前4个字符的substr
更改dimnames
后,我们可以使用xtabs
执行sum
dimnames(m1) <- lapply(dimnames(m1), substr, 1, 4)
xtabs(Freq~ Var1 + Var2, as.data.frame.table(m1))
# Var2
#Var1 UKC1 UKC2
# UKC1 14 22
# UKC2 46 54
dimnames(m1)在使用前4个字符的substr
更改dimnames
后,我们可以使用xtabs
进行sum
dimnames(m1) <- lapply(dimnames(m1), substr, 1, 4)
xtabs(Freq~ Var1 + Var2, as.data.frame.table(m1))
# Var2
#Var1 UKC1 UKC2
# UKC1 14 22
# UKC2 46 54
dimnames(m1)谢谢你,它很管用!只是想补充一点,我的问题中有一个拼写错误,现在已经更正了。第四列的列名应该是UKC2_SS2,而不是UKC2_SS1,因此无需将m1的最后一列命名为UKC2_SS1.1。谢谢,它可以工作!只是想补充一点,我的问题中有一个拼写错误,现在已经更正了。第4列的列名应为UKC2_SS2而不是UKC2_SS1,因此无需将m1的最后一列命名为UKC2_SS1.1。