温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - filter rows if any of the two columns have the specified value
r select

r - 如果两列中的任何一个具有指定的值,则过滤行

发布于 2020-03-29 12:50:16

我有一个7列的数据框,说a1,a2,....,a7。a1和a2具有数值,其余则具有字符串(在这种情况下为运动员名称)。我想选择“约翰”和“彼得”同时出现在任意两列(a3至a7)中的行。在下面的示例中,我只选择第2行和第4行。

在此处输入图片说明

我在互联网上进行了搜索,但找不到任何方向。有人有什么主意吗?可以吗 谢谢!

查看更多

查看更多

提问者
Rockaell
被浏览
40
Steffen Eichhorn 2020-01-31 15:11
library(tidyverse)
df <- data.frame(
  a1 = c(14,23,24,6,4),
  a2 = c(5,67,4,57,54),
  a3 = c("Paul", "John", "Mike", "Peter", "John"),
  a4 = c("John", "Phil", "Peter", "John", "Luke"),
  a5 = c("Dave", "Peter", "Nick", "Paul", "Phil"),
  a6 = c("Adrian", "Keim", "Rick", "Luke", "Mike"),
  a7 = c("Rick", "Luke", "Adrian", "Rick", "Dave")
)

df %>%
  filter_all(
    any_vars(. == "Peter")
  ) %>%
  filter_all(
    any_vars(. == "John")
  )