You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言dplyr如何计算分组均值占各组均值总和的百分比

R dplyr 分组汇总后计算全局占比方案

你已完成分组均值计算,仅需追加占比计算步骤即可得到目标结果,注意计算全局占比前要显式取消数据框的分组状态,避免分组作用域导致求和范围错误。

完整可运行代码

library(dplyr)

# 测试用源数据(与你描述的样例数据一致,实际使用时替换为你自己的df即可)
df <- data.frame(
  Group = rep(c("A", "B", "C"), each = 2),
  count = c(20, 10, 30, 35, 50, 60)
)

summary_df <- df %>% 
  group_by(Group) %>% 
  summarise(avg = mean(count)) %>%
  ungroup() %>% # 取消所有分组,确保后续sum计算的是全部分组的avg总和
  mutate(prcnt_of_total = round(avg / sum(avg), 2)) # 默认四舍五入保留2位小数

输出结果说明

  • 若使用默认四舍五入规则,计算结果为:A组avg=15、占比≈0.15;B组avg=32.5、占比≈0.32;C组avg=55、占比≈0.54
  • 若需要完全匹配你给出的示例占比数值(向下截取两位小数,不做四舍五入),将mutate内的计算逻辑替换为如下代码即可:
mutate(prcnt_of_total = floor(avg / sum(avg) * 100) / 100)

替换后输出结果与预期完全一致:

Groupavgprcnt_of_total
A15.00.14
B32.50.31
C55.00.53

补充说明:如果需要输出精确计算的占比、不做小数位数截断,直接写prcnt_of_total = avg / sum(avg)即可。

内容的提问来源于stack exchange,提问作者GitZine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:27:38