r - 按因素水平和总计汇总

标签 r sas

我试图对一个因子的每个水平的数字列的值求和,但也在结果数据框中获得所有水平的总和。

例如:

# 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/

相关文章:

SAS - 在宏条件之前分配库

r - 根据对象名称的字符向量创建列表

r - 如何使用模式使用通配符组合数据帧?

r - iGraph 中的着色节点

sql - SAS 代码效率

sql - Hiveql中两个日期之间的差异

sas - 需要从 SAS 中的字符字段中提取数字数据

R:如何使用文本框注释 ggplot?

javascript - R Shiny sliderInput 按钮 ---> 页面打开时动画

statistics - Proc Reg 根据新的观察结果做出预测