在R中如何将分组总计数与唯一值计数合并到同一tibble中
实现方案
方案1:一步汇总计算(推荐)
不需要先生成两个独立tibble再合并,直接在一次分组汇总中同时计算两个指标即可,代码更简洁高效:
library(dplyr) # 先基于你提供的示例数据构造测试用df(你的原始数据有Cancelled列的话可以跳过这步) df <- data %>% mutate(Cancelled = FALSE) # 一步计算得到目标表 result <- df %>% filter(Cancelled == FALSE) %>% group_by(School) %>% summarise( count = n(), # 总记录数 unique = n_distinct(ID) # 唯一ID数量 ) # 如果需要和你贴的目标表列对应(你目标表中两个数值列写反了),可以加一步调整列: # result <- result %>% select(School, count = unique, unique = count)
方案2:合并已有的两个tibble
如果你已经单独生成了两个tibble,假设第一个叫count_df,第二个叫unique_df,用关联函数合并即可:
library(dplyr) result <- left_join(count_df, unique_df, by = "School") # 同样如果需要调整列的对应关系,加select处理即可
运行后得到的结果结构和你需要的完全一致。
内容的提问来源于stack exchange,提问作者kioti
相关产品推荐
相关产品推荐

