嘿,我有一个列表500K行,我需要按照必须包含某些子字符串的条件进行过滤(另一个包含20个子字符串的列表)。
我现在正在使用dplyr
包,我的代码如下所示:
result <- data %>%
filter( grepl('sub1', column1) ||
grepl('sub2', column1) ||
grepl('sub3', column1) ||
grepl('sub4', column1) ||
...
grepl('sub20', column1))
当第二个列表变得更长时,整个事情真的让我感到害怕,我想知道是否有一种简单(或更短?)的方式。
答案 0 :(得分:1)
我们可以paste
将模式字符串放在一起,collapse
可以|
library(dplyr)
data %>%
filter(grepl(paste(paste0('sub', 1:20), collapse="|"), column1))