grepl(pattern, df) 错误:正则表达式无效
Error in grepl(pattern, df): invalid regular expression
我一直在尝试在列中搜索特定模式。
我的模式是一个相当大的单词列表 (>2000),要筛选的列有数百万行 (df$column1)
我使用来自不同数据框的列创建了我的模式
word<-df2$words_to_use
pattern<-paste0('.*',word,'.*', collapse ='|')
所以我的模式看起来像(>2000 字):
.* word1.* | .* word2.* | .* word3.* | .* word4.*
我想在 df 中创建一个 Y/N 列,说明 df$column1 是否包含模式中的任何单词。
我用过
df$check<-ifelse(grepl(pattern,df$column1),'Y','N')
它适用于小图案,但对于大图案我收到错误消息
Error in grepl(pattern,df$column1):invalid regular expression
非常感谢您能帮到我!
如果有很多元素,而不是 paste
在一起,用 lapply
和 Reduce
循环模式向量
ifelse(Reduce(`|`, lapply(word, function(pat) grepl(pat, df$column1))), "Y", "N")
我一直在尝试在列中搜索特定模式。 我的模式是一个相当大的单词列表 (>2000),要筛选的列有数百万行 (df$column1)
我使用来自不同数据框的列创建了我的模式
word<-df2$words_to_use
pattern<-paste0('.*',word,'.*', collapse ='|')
所以我的模式看起来像(>2000 字):
.* word1.* | .* word2.* | .* word3.* | .* word4.*
我想在 df 中创建一个 Y/N 列,说明 df$column1 是否包含模式中的任何单词。
我用过
df$check<-ifelse(grepl(pattern,df$column1),'Y','N')
它适用于小图案,但对于大图案我收到错误消息
Error in grepl(pattern,df$column1):invalid regular expression
非常感谢您能帮到我!
如果有很多元素,而不是 paste
在一起,用 lapply
和 Reduce
ifelse(Reduce(`|`, lapply(word, function(pat) grepl(pat, df$column1))), "Y", "N")