2015-06-26 38 views
4

我有一个数据框。我只想在与特定组关联的情况下过滤掉一些问题。如何根据关联条件过滤dplyr

对于虚设例如,假设我有以下:

> 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 

我想用一个“G”或“H”或“L”的问题,以过滤掉的行是否也有一个“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),但后来我想知道什么是最好的方法来做到这一点。

谢谢!

+0

@Frank - 好点。让我改写一些更像我的问题。 – user1357015

回答

6

如果规则是

当基团包含L,降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 
+6

或%d(%)(%)(%“%”(“G”,“H”,“L”)))%%过滤器(!(任何(问题==“L”)) ' –

相关问题