我有一个数据框。我想仅在与特定组关联的情况下过滤掉一些问题。
对于一个虚拟示例,假设我有以下内容:
> 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 :(得分:6)
如果规则是
当一组包含L时,丢弃L,G&小时。
然后
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