Dplyr使用group_by时如何合并同变量多个取值统计均值
Dplyr 代码调整方案
方案1:仅输出X、Y、Z合并群体的整体均值
如果不需要保留V2007、V2010的分组维度,直接筛选对应行后求均值即可:
data_2019q1 %>% filter(UF %in% c("X", "Y", "Z")) %>% summarize(meanIncome = mean(VD4020, na.rm= TRUE))
方案2:保留原有V2007、V2010分组维度,合并X/Y/Z为同一UF组
如果需要保持原来的分组逻辑,仅把UF为X、Y、Z的记录合并为同一组,先对UF列做重编码再分组统计即可:
data_2019q1 %>% # 重编码UF字段,将X/Y/Z统一为同一个分组值 mutate(UF = case_when( UF %in% c("X", "Y", "Z") ~ "XYZ合并组", TRUE ~ UF )) %>% # 不需要保留其他UF分组的话可在此处添加 filter(UF == "XYZ合并组") group_by(UF, V2007, V2010) %>% summarize(meanIncome = mean(VD4020, na.rm= TRUE), .groups = "drop")
补充说明:
.groups = "drop"参数用于关闭dplyr高版本中分组汇总后的默认分组保留提示,不需要可删除。
内容的提问来源于stack exchange,提问作者Lelleo
相关产品推荐
相关产品推荐

