我有一个这样的数据集。
ID Group Value Col3
1 z1 1.29 1
1 z1 0.81 1
2 z2 2.89 1
2 z2 1.53 2
3 z1 0.13 3
3 z1 0.97 3
4 z3 10.75 3
4 z3 8.13 2
5 x2 0.45 1
5 x2 1.43 3
当基于
Col3=2
识别重复项时,如何保留
group_by(Id,Group)
的行
预期结果
ID Group Value Col3
1 z1 1.29 1
1 z1 0.81 1
2 z2 1.53 2
3 z1 0.13 3
3 z1 0.97 3
4 z3 8.13 2
5 x2 0.45 1
5 x2 1.43 3
请注意,ID 2 和 ID 4 中的一行被排除,仅保留 Col3=2 的行。预先感谢您的帮助。
看起来如果组中有 2 你想保留它,否则返回所有行。这似乎可以解决问题
dd %>%
group_by(ID, Group) %>%
filter(!any(Col3==2) | (any(Col3==2) & Col3==2))
返回
ID Group Value Col3
<int> <chr> <dbl> <int>
1 1 z1 1.29 1
2 1 z1 0.81 1
3 2 z2 1.53 2
4 3 z1 0.13 3
5 3 z1 0.97 3
6 4 z3 8.13 2
7 5 x2 0.45 1
8 5 x2 1.43 3