我试图对一个因子的每个水平的数字列的值求和,但也在结果数据框中获得所有水平的总和。
例如:
# Type gender population
# A male 100
# B male 150
# A female 125
# B female 175
使用聚合函数我可以得到:
aggregate(population ~ gender, df, sum)
# gender population
# male 250
# female 300
但是有没有一种方法可以得到同时对两个级别求和的输出?
# gender population
# all 550
# male 250
# female 300
这可以在 SAS 中使用 proc tabulate 轻松完成,希望也有一种方法可以使用 R 完成。
提前致谢,
编辑
给出的两个答案都有效,但我试图找到一个不那么临时的解决方案。我正在寻找适用于多个变量的东西,例如针对更复杂的数据框的这样的输出:
# Type gender population
# all all 500
# all male 200
# all female 300
# A all 250
# A male 100
# A female 150
# B all 250
# B male 100
# B female 150
如果不够清楚,我深表歉意。
最佳答案
你可以rbind
,即
d1 <- aggregate(population ~ gender, df, sum)
rbind(data.frame(gender = 'total', population = sum(d1$population)), d1)
# gender population
#1 total 550
#2 female 300
#3 male 250
关于r - 按因素水平和总计汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54129152/