如何按ha_name分组添加统计Implementation出现次数的汇总行?
为分组添加字符串统计的汇总行
数据集
df1 <- tibble(ha_name = c("Interior", "Interior", "Interior", "Interior", "Interior", "Interior", "Fraser", "Fraser", "Fraser", "Fraser", "Fraser", "Fraser", "Northern", "Northern", "Northern", "Northern", "Northern", "Northern"), facility = c("Facility 1", "Facility 2", "Facility 3", "Facility 4", "Facility 5", "Facility 6", "Facility 1", "Facility 2", "Facility 3", "Facility 4", "Facility 5", "Facility 6", "Facility 1", "Facility 2", "Facility 3", "Facility 4", "Facility 5", "Facility 6"), pre_mandate = c("Planning", "Implementation", "Planning", "Planning", "Implementation", "Planning", "Implementation", "Planning", "Planning", "Planning", "Implementation", "Implementation", "Planning", "Planning", "Planning", "Implementation", "Planning", "Planning"), current = c("Planning", "Implementation", "Implementation", "Planning", "Implementation", "Planning", "Implementation", "Planning", "Planning", "Implementation", "Implementation", "Implementation", "Planning", "Implementation", "Planning", "Implementation", "Planning", "Implementation") )
需求
为每个ha_name分组添加一条汇总行,统计该组中pre_mandate和current列里"Implementation"的出现次数。例如Interior组的汇总行应为:Interior - All Interior - 2 - 3。
问题分析
你当前代码里的across(pre_mandate:current, %in%, "Implementation")只会返回对应列的逻辑向量(每个元素为TRUE/FALSE),无法得到统计次数的单一数值。需要在across内部对逻辑向量求和——因为R中TRUE会被视为1,FALSE视为0,求和即可得到"Implementation"的出现次数。
修正后的代码
f2 <- df1 %>% group_by(ha_name) %>% group_modify(~ bind_rows( ., summarise(., across(pre_mandate:current, ~sum(.x %in% "Implementation")), facility = paste("All", ha_name) ) )) %>% ungroup() %>% mutate(ha_name = if_else(startsWith(facility, "All"), "", ha_name))
代码说明
- 在
summarise的across中,用~sum(.x %in% "Implementation")完成统计:先通过%in%生成判断是否为"Implementation"的逻辑向量,再用sum()统计TRUE的数量,即目标字符串的出现次数。 - 直接在
summarise中指定汇总行的facility值,避免后续用coalesce处理,逻辑更直接。 - 最后将汇总行的
ha_name设为空字符串,匹配需求格式。
结果验证
运行代码后,Interior组的汇总行将显示为:"" - "All Interior" - 2 - 3,完全符合你要求的统计结果(ha_name列仅显示为空,实际对应分组为Interior)。
内容的提问来源于stack exchange,提问作者PhDavey
相关产品推荐
相关产品推荐

