agrep:只返回最佳匹配

我在R中使用’agrep’功能,返回一个匹配的向量.我想要一个类似于agrep的功能,只能返回最佳匹配,或者如果有关系,最好的匹配.目前,我正在使用结果向量的每个元素上的’cba’包中的’sdist()’函数,但这似乎是非常多余的.

/ edit:这里是我目前使用的功能.我想加快速度,因为计算两次距离似乎是多余的.

library(cba)
word <- 'test'
words <- c('Teest','teeeest','New York City','yeast','text','Test')
ClosestMatch <- function(string,StringVector) {
  matches <- agrep(string,StringVector,value=TRUE)
  distance <- sdists(string,matches,method = "ow",weight = c(1,2))
  matches <- data.frame(matches,as.numeric(distance))
  matches <- subset(matches,distance==min(distance))
  as.character(matches$matches)
}

ClosestMatch(word,words)

解决方法

RecordLinkage包从CRAN中删除,使用stringdist:
library(stringdist)

ClosestMatch2 = function(string,stringVector){

  stringVector[amatch(string,stringVector,maxDist=Inf)]

}

相关文章

HTML代码中要想改变字体颜色,常常需要使用CSS样式表。CSS是...
HTML代码如何让字体盖住图片呢?需要使用CSS的position属性及...
HTML代码字体设置 在HTML中,我们可以使用标签来设置网页中的...
在网页设计中,HTML代码的字体和字号选择是非常重要的一个环...
HTML(Hypertext Markup Language,超文本标记语言)是一种用...
外链是指在一个网页中添加一个指向其他网站的链接,用户可以...