【发布时间】:2022-11-02 23:12:35
【问题描述】:
我试图做一些简单的事情。我的数据框如下所示:
ID value
1 a
2 b
2 c
3 d
3 d
4 e
4 e
4 e
我想要做的是过滤具有多行且value 列中的所有值都相同的组:
df %>% group_by(ID) %>% filter(n() > 1 & all(mysterious_condition))
所以mysterious_condition 是我所缺乏的。我想要实现的是:
ID value
3 d
3 d
4 e
4 e
4 e
关于如何做到这一点的任何想法?
谢谢!
【问题讨论】:
-
df %>% group_by(ID, value) %>% filter(n() > 1) -
基地R:
df[ave(seq(nrow(df)), df[,c("ID","value")], FUN = length) > 1,] -
刚刚注意到将价值解释为一个小组工作,现在看到你提出了相同的@r2evans。谢谢!
-
@r2evans,如果有一个包含三行值 c(“a”,“a”,“b”)的组,则按 id 和 value 分组将保留“a”行,只删除“b”行。但是,如果我正确理解了 OP 的请求,则应该删除整个组。
-
好点@mt1022