是否有一个函数可以一次搜索多列以获取一个值,然后返回包含匹配值的行

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

我有一个如下所示的数据框:

df <- data.frame(name = c("a","b","c","d"), m1 = c(16.0,45.0,32.0,18.0), m2 = c(17.0,46.0,33.0,19.0))

df

   name m1 m2
 1    a 16 17
 2    b 45 46
 3    c 32 33
 4    d 18 19

我想知道如何在给定输入值(例如17.0)的情况下搜索此数据帧并检索以下输出?:

name m1 m2
1    a 16 17
r
1个回答
0
投票

如果要搜索所有列,我们可以使用rowSums

df[rowSums(df == 17, na.rm = TRUE), ]

#  name m1 m2
#1    a 16 17

或使用filter_all中的dplyr

library(dplyr)
df %>% filter_all(any_vars(. == 17))
© www.soinside.com 2019 - 2024. All rights reserved.