我有一个数据框。我只想在某些问题与特定组相关联的情况下过滤掉它们。
对于一个虚拟示例,假设我有以下内容:
> mydf
Group Issue
1 A G
2 A H
3 A L
4 B V
5 B M
6 C G
7 C H
8 C L
9 C X
10 D G
11 D H
12 D I
如果该组中也存在“L”问题,我想过滤掉具有“G”或“H”或“L”问题的行。
所以在这种情况下,我想过滤掉第 1、2、3、6、7、8 行,但保留第 4、5、9、10、11 和 12 行。因此结果将是:
> mydf
Group Issue
4 B V
5 B M
9 C X
10 D G
11 D H
12 D I
我想我首先需要
group_by(Group)
但后来我想知道什么是最好的方法来做到这一点。谢谢!
最佳答案
如果规则是
When a group contains L, drop L, G & H.
然后
mydf %>%
group_by(Group) %>%
filter( if (any(Issue=="L")) !(Issue %in% c("G","H","L")) else TRUE )
# Group Issue
# 1 B V
# 2 B M
# 3 C X
# 4 D G
# 5 D H
# 6 D I
关于r - 如何根据关联条件在 dplyr 中进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31063790/