使用dplyr选择满足两个条件之一的组

jxct1oxe  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(120)

我想选择满足以下两个条件之一的组:1)含有ab; 2)含有ac。下面是数据集:

ff <- data.frame(id = c(1,1,2,2,3,3,4,4), value = c("a", "a", "a", "b", "a", "c", "b", "c"))

因此,选择的组应为2和3。
如何以有效的方式实现这一点(我有一个更大的数据集)?

z4bn682m

z4bn682m1#

您可以按建议的这两个条件进行分组和筛选

library dplyr

ff <- data.frame(id = c(1, 1, 2, 2, 3, 3, 4, 4), 
                 value = c("a", "a", "a", "b", "a", "c", "b", "c"))

ff %>%
  group_by(id) %>%
  filter(all(c("a", "b") %in% value) | all(c("a", "c") %in% value)) %>%
  distinct(id)

基本上,您的过滤器将检查组ID中的值中的所有a和b或a和c的示例。
distinct从上面的筛选器代码中生成唯一的组

相关问题