在R中加速字符串过滤

在R中加速字符串过滤,r,string,dplyr,sapply,stringr,R,String,Dplyr,Sapply,Stringr,我有一个数据框,其中有一列代码,用逗号分隔。我目前正在通过查看“代码”列筛选此数据帧,如果列表中出现代码,则保留该行。我的问题是,这个数据帧正在扩展,可接受的代码列表也在扩展,所以如果可能的话,我想加快这个过程。理想情况下,有一种方法可以将一行标记为已检查,如果行中有一个好的代码,则不必再次检查所有其他可接受的代码 当前数据帧的外观如下所示: Code_column ,12ab, ,12ab,123b, ,456t,345u, ,12ab,789p, 良好代码列表: good_codes &l

我有一个数据框,其中有一列代码,用逗号分隔。我目前正在通过查看“代码”列筛选此数据帧,如果列表中出现代码,则保留该行。我的问题是,这个数据帧正在扩展,可接受的代码列表也在扩展,所以如果可能的话,我想加快这个过程。理想情况下,有一种方法可以将一行标记为已检查,如果行中有一个好的代码,则不必再次检查所有其他可接受的代码

当前数据帧的外观如下所示:

Code_column
,12ab,
,12ab,123b,
,456t,345u,
,12ab,789p,
良好代码列表:

good_codes <- c(',123b,', ',456t,', ',345u,')
最后一栏

Code_column
,12ab,123b,
,456t,345u,

我认为我们不需要
sapply

df[str_detect(df$Code_column,paste(good_codes, collapse = '|')),]
[1] ",12ab,123b," ",456t,345u,"
您可以将|&传递到
str_detect

paste(good_codes, collapse = '|')
[1] ",123b,|,456t,|,345u,"

我认为这也是基本R中的df[code>df[grepl(粘贴(good_code,collapse='|'),df$CCode_列),]。
paste(good_codes, collapse = '|')
[1] ",123b,|,456t,|,345u,"