如何根据关联条件在 dplyr 中进行过滤

How to filter in dplyr based upon an associated condition

我有一个数据框。我只想过滤掉与特定组相关联的一些问题。

举个虚拟的例子,假设我有以下内容:

> 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