【问题标题】:partial string matching in R ,apart from using grepR中的部分字符串匹配,除了使用grep
【发布时间】:2015-06-17 12:13:23
【问题描述】:

我需要做部分字符串匹配R:

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

我需要做类似 grep(str1,str2) 的事情,即输出应返回 str1 是否在 str2 中。一种方法是 grep 但 grep 运行速度非常慢。如何以更快的方式完成这项工作?

谢谢

【问题讨论】:

  • 公共部分总是在str1的开头吗? (如果是这样,也许substr(str2, 1, nchar(str1))==str1 更快?)
  • 尝试添加, fixed = TRUE,虽然我很惊讶grep 很慢。您是否在循环中运行它?
  • 也可以试试 stringi 包中的stri_detect_fixed

标签: r string-matching


【解决方案1】:

例如使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 2014-08-07
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多