Есть ли функция для одновременного поиска значения в нескольких столбцах с последующим возвратом строки, содержащей совпадающее значение - PullRequest
2 голосов
/ 05 мая 2020

У меня есть фрейм данных, который выглядит следующим образом:

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

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Вот еще один базовый вариант R

df[which(df==17,arr.ind = TRUE)[,"row"],]

, который дает

  name m1 m2
1    a 16 17
1 голос
/ 05 мая 2020

Если вы хотите искать во всех столбцах, мы можем использовать 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...