按多组汇总分类变量:统计试验设计与土壤质地组合的唯一文献标题数
解决按实验设计+土壤质地组合统计唯一文献数量的问题
你之前的代码问题在于多次调用group_by()会覆盖之前的分组,无法实现同时按两个变量的组合进行统计。以下是两种可行的解决方案:
方法一:使用group_by() + summarise()
直接将两个分组变量传入同一个group_by(),再统计每组的唯一文献数:
df4_4 <- metadata2 %>% group_by(experiment_cond, soil_texture) %>% # 同时按实验设计、土壤质地分组 summarise(unique_publications = n_distinct(publication_title), .groups = "drop") %>% drop_na() View(df4_4)
group_by(experiment_cond, soil_texture):实现按两个变量的组合分组,这是核心步骤n_distinct(publication_title):统计每组内唯一的文献标题数量.groups = "drop":统计完成后自动取消分组,让结果数据框更整洁drop_na():移除包含缺失值的行,和你原有操作保持一致
方法二:使用distinct() + count()(更简洁)
先去除重复的「实验设计+土壤质地+文献标题」组合,再直接统计每组的数量:
df4_4 <- metadata2 %>% distinct(experiment_cond, soil_texture, publication_title) %>% # 保留唯一的组合记录 count(experiment_cond, soil_texture, name = "unique_publications") %>% # 统计每组的文献数 drop_na() View(df4_4)
这个方法逻辑更直观,先去重再计数,结果和方法一完全一致。
内容的提问来源于stack exchange,提问作者madina_b
相关产品推荐
相关产品推荐

