相关疑难解决方法(0)

R中的快速部分字符串匹配

给定一个字符串向量texts和一个模式向量patterns,我想找到每个文本的任何匹配模式.

对于小型数据集,可以在R中轻松完成grepl:

patterns = c("some","pattern","a","horse")
texts = c("this is a text with some pattern", "this is another text with a pattern")

# for each x in patterns
lapply( patterns, function(x){
  # match all texts against pattern x
  res = grepl( x, texts, fixed=TRUE )
  print(res)
  # do something with the matches
  # ...
})
Run Code Online (Sandbox Code Playgroud)

此解决方案是正确的,但它不会扩展.即使使用适度更大的数据集(约500个文本和模式),这段代码也非常慢,在现代机器上每秒仅解决大约100个案例 - 考虑到这是一个粗略的字符串部分匹配,没有正则表达式(设置为fixed=TRUE),这是荒谬的.即使进行lapply并行也无法解决问题.有没有办法有效地重写这段代码?

谢谢,Mulone

string performance r string-matching

17
推荐指数
2
解决办法
4342
查看次数

标签 统计

performance ×1

r ×1

string ×1

string-matching ×1