Фильтрация данных по строке регулярных выражений по всем строкам? - PullRequest
0 голосов
/ 13 марта 2019

Я прочитал в таблице df, в которой есть числа и строки.

У меня есть ключевые слова, хранящиеся в векторе arr_words.Для каждой строки в таблице;если строка содержит какое-либо слово из вектора, игнорируя регистр, я хочу сохранить эту строку.

Например, если в одной из ячеек есть «мне нравится magIcalot», а одно из моих ключевых слов - «магия», я хочу сохранить все атрибуты из этой строки.

I 'Я пробовал это, но я уверен, что это неправильно, потому что это возвращает меня к нулю строк-

df %>%
  rowwise() %>% 
  filter(any(names(df) %in% arr_words))

1 Ответ

3 голосов
/ 13 марта 2019

Если вы хотите выполнить поиск в каком-либо определенном поле, скажем field1, вы можете использовать его следующим образом:

library(dplyr)
df %>%
   filter(grepl(arr_words,field1))

Если вы хотите выполнить поиск по всем полям, то:

library(stringr)
library(dplyr)
df %>%
  filter_all(any_vars(str_detect(., arr_words)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...