使用 dplyr 删除有条件的行

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

我想删除数据框中看起来像这样的行

df <- data.frame(col1 = c("a", "a", "m", "m", "m", "m", "n", "q"),
                 col2 = c("a", "b", "m", "x", "y", "z", NA, "p"))
  col1 col2
1    a    a
2    a    b
3    m    m
4    m    x
5    m    y
6    m    z
7    n <NA>
8    q    p

我只关注

a
中的
m
Col1
,因为这些值出现在
Col2
中。我想删除
Col1
Col2
没有匹配值的行。 注意:鉴于提供的
df
只是我的庞大数据集的可重现示例,指定“a”或“m”等单独值是不合适的。

我想要的结果

  col1 col2
1    a    a
2    m    m
3    n   <NA>
4    q    p

有什么建议吗?非常感谢您的帮助!

r dplyr tidyverse
1个回答
0
投票

你可以试试这个

df %>%
    filter(col1 == col2 | !col1 %in% c("a", "m"))

这给出了

  col1 col2
1    a    a
2    m    m
3    n <NA>
4    q    p
© www.soinside.com 2019 - 2024. All rights reserved.