You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用dplyr筛选行数>1且value列全相同的分组?

用dplyr筛选分组行数大于1且value列值全相同的组

原始数据框:

ID    value
1       a
2       b
2       c
3       d
3       d
4       e
4       e
4       e

目标是筛选出分组行数大于1且组内value列所有值相同的组,得到结果:

ID    value
3       d
3       d
4       e
4       e
4       e

你可以用两种方式替换mysterious_condition,实现需求:

方法一:用first()对比组内所有值

完整代码:

df %>% 
  group_by(ID) %>% 
  filter(n() > 1 & all(value == first(value)))

逻辑:all(value == first(value))会检查组内每一行的value是否等于组内第一行的value,如果全部满足则说明组内所有值一致。

方法二:用n_distinct()统计唯一值数量

更简洁的写法:

df %>% 
  group_by(ID) %>% 
  filter(n() > 1 & n_distinct(value) == 1)

逻辑:n_distinct(value)会统计组内value的唯一值个数,等于1时就代表组内所有值都相同。

内容的提问来源于stack exchange,提问作者Juan C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:35:19