如何使用dplyr函数按type_n分组计算组内百分比
dplyr 实现分组百分比计算方案
你可以直接用分组汇总的逻辑实现需求,完整代码及说明如下:
# 先加载dplyr包 library(dplyr) # 替换df为你的实际数据集名称 result <- df %>% group_by(type_n) %>% # 按type_n字段分为small/medium/large三个分组 summarise( new_col = n() / sum(population) * 100 # 按规则计算百分比指标 )
逻辑说明
group_by(type_n)会将数据集按type_n的取值拆分为独立的三个分组,后续计算均在分组内独立执行n()是dplyr内置的计数函数,返回当前分组内的记录数,对应你需要的「组内user的计数」sum(population)计算当前分组内所有population字段的总和- 最终输出的
result仅包含type_n和new_col两列,完全匹配你需要的输出结构
验证示例:如果small分组有2条记录、population总和为7,代码计算结果为2/7*100≈28.57,和你给出的示例逻辑完全一致。
内容的提问来源于stack exchange,提问作者Ramon_88
相关产品推荐
相关产品推荐

