R语言dplyr包reframe函数实现嵌套分组汇总统计
实现按国家+性别、国家+All的汇总统计
可以通过将性别分组的汇总结果与国家整体的汇总结果合并,得到每个国家对应F、M、All三类的统计数据。具体代码如下:
library(tidyverse) df <- tribble( ~Country, ~Gender, ~var, "Bangladesh", "F", 2.5, "Bangladesh", "M", 4.5, "Bangladesh", "M", 4.1, "US", "F", 1.7, "US", "F", 2.7, "US", "M", 3.5, ) # 按国家和性别分组生成汇总 gender_summary <- df %>% group_by(Country, Gender) %>% reframe( n = n(), meanVar = mean(var) ) # 按国家整体生成汇总,并标记Gender为"All" all_summary <- df %>% group_by(Country) %>% reframe( Gender = "All", n = n(), meanVar = mean(var) ) # 合并两类结果并按国家、性别排序 final_result <- bind_rows(gender_summary, all_summary) %>% arrange(Country, Gender) final_result
运行代码后得到的输出结果:
# A tibble: 6 × 4 Country Gender n meanVar <chr> <chr> <int> <dbl> 1 Bangladesh F 1 2.5 2 Bangladesh M 2 4.3 3 Bangladesh All 3 3.7 4 US F 2 2.2 5 US M 1 3.5 6 US All 3 2.63
内容的提问来源于stack exchange,提问作者rez
相关产品推荐
相关产品推荐

