我在R中使用'agrep'函數,它返回一個匹配向量。我想要一個類似於agrep的函數,只返回最佳匹配,或者如果有關係,則返回最佳匹配。目前,我正在使用結果向量的每個元素上的'cba'包中的'sdist()'函數執行此操作,但這似乎非常冗餘。agrep:只返回最佳匹配
/編輯:這是我目前使用的功能。我想加快速度,因爲兩次計算距離似乎是多餘的。
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, 0, 2))
matches <- data.frame(matches,as.numeric(distance))
matches <- subset(matches,distance==min(distance))
as.character(matches$matches)
}
ClosestMatch(word,words)
Package'RecordLinkage'可用在CRAN上,再次(版本0.4-9截至2016-05-02。 – Uwe 2016-07-15 09:52:59