2015-06-17 24 views
0

我需要做的部分字符串匹配R:部分字符串匹配在R,除了用grep

eg: str1<-"here we go" 
    str2<-"here we go another way" 

我需要做的事情,如grep(STR1,STR2),即。无论str1是否在str2中,输出都应返回。一种方法是grep,但grep运行速度非常慢。这怎么能以更快的速度完成呢?

谢谢

+0

是否始终在str1的开始处常见部分? (如果是这样,也许'substr(str2,1,nchar(str1))== str1'更快?) – Cath

+2

尝试添加',fixed = TRUE',尽管我很惊讶'grep'很慢。你在循环内运行它吗? –

+1

另请尝试stringi包中的'stri_detect_fixed'。 –

回答

0

例如使用grepl。这里包装功能:

str1 <- "here we go" 
str2 <- "here we go another way" 

`%instr%` <- 
    function(s1,s2) grepl(s1,s2) || grepl(s2,s1) 

str1 %instr% str2 
## [1] TRUE