R中两个数据框rbind后产生冗余行,如何基于匹配条件用dplyr整理数据?
你可以通过dplyr的分组汇总逻辑直接实现需求,核心是在制片方+年份的分组内分别统计两类状态的数量,无需拆分维度。
核心实现代码
# 加载dplyr包 library(dplyr) # 合并数据集后直接分组统计 stat_result <- rbind(df1, df2) %>% # 按制片方、年份分组 group_by(producer, year) %>% # 分别统计提名、获奖数量:逻辑值求和时TRUE=1、FALSE=0,刚好得到对应计数 summarise( nr_of_nominee = sum(type == "nominee"), nr_of_awards = sum(type == "awarded"), # 汇总后自动取消分组,避免后续操作出现意外分组问题 .groups = "drop" ) %>% # 按年份、制片方排序,和你给出的预期输出顺序一致 arrange(year, producer)
问题原因说明
你之前使用count()得到重复行的核心原因是统计时保留了type维度的分组,导致同一制片方+年份的提名、获奖计数被拆分为两行。上述方法直接在同一分组内完成两类计数,同一组合的结果会合并为单行,完全匹配预期输出。
内容的提问来源于stack exchange,提问作者Ed9012
相关产品推荐
相关产品推荐

