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

标签 r 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

如果该组中也存在“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/

相关文章:

r - ggplot : scale second axis with error bars

r - 使用 dplyr 替换选定列上的值

r - igraph和tnet之间的集中度度量上的差异

r - 是否有自动显示 `stargazer` 表中回归 F 统计量的 p 值的方法?

R - ggplot2 - geom_line - 去掉缺失值的直线

r - 使用 case_when/if_any 跨多个变量创建变量

r - 在 dplyr 管道中的函数之后立即使用 $ 进行子集化时出错

r - 使用增量变量名称从 R 数据框中提取数据

r - 一次合并多个列

r - 输出到 MS Word 时的上标