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

问题描述 投票:0回答:1

我有一个数据,我试图根据一个条件来过滤数据。下面是一个数据的例子。

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的解决方案,我将会非常感激

r dplyr
1个回答
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   

在上位机的代码中,它是在比较 & 即一行可以有'LL'和'OO',这是不可能的(除非是两列)。

© www.soinside.com 2019 - 2024. All rights reserved.