我有一个要根据条件筛选数据的数据。这是数据示例:
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解决方案将不胜感激。
答案 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”(除非这是两列)