使用dplyr基于多个值的条件格式

时间:2020-05-12 18:56:48

标签: r dplyr

我有一个要根据条件筛选数据的数据。这是数据示例:

df <- data.frame("x" = c("A", "A", "A", "B", "B", "B", "C"),
                 "y" = c("LL", "LL", "OO", "OO", "OO", "OO", "LL"))

我正在尝试过滤数据,这样我就只保留“ A”,因为它与“ LL”和“ OO”都相关。我知道这是一个条件过滤,但是我无法弄清楚编码的条件。到目前为止,这是我尝试过的:

df %>%
 group_by(x) %>%
 filter(y == "LL" & y == "OO")

基本解决方案或dplyr解决方案将不胜感激。

1 个答案:

答案 0 :(得分:1)

一个选项是all

library(dplyr)
df %>% 
   group_by(x) %>%
   filter(all(c("LL", "OO") %in% y))
# A tibble: 3 x 2
# Groups:   x [1]
#  x     y    
#  <fct> <fct>
#1 A     LL   
#2 A     LL   
#3 A     OO   

在OP的代码中,它正在比较&,即,单行可以同时具有“ LL”和“ OO”(除非这是两列)