在所有行上过滤正则表达式字符串上的数据框?

时间:2019-03-13 19:41:47

标签: r dplyr

我已经读了一个表df,其中包含数字和字符串。

我有一个存储在向量arr_words中的关键字。对于表中的每一行;如果该行包含向量忽略大小写中的任何单词,我想保留该行。

例如,如果其中一个单元格具有“ i like magIcalot”,而我的关键字之一是“ magic”,则我希望保留该行中的所有属性。

我一直在尝试,但是我很确定这是错误的,因为它使我返回零行-

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

1 个答案:

答案 0 :(得分:3)

如果您想搜索任何特定字段,例如field1,则可以按以下方式使用:

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

如果要搜索所有字段,则:

library(stringr)
library(dplyr)
df %>%
  filter_all(any_vars(str_detect(., arr_words)))