0
我正在嘗試使用agrep命令在R中進行字符串匹配。 但是我擔心它會在找到一個好匹配時停下來,而不是優化找到最好的匹配。雖然我有可能瞭解它的工作原理是不正確的。我下面的例子重現了這個問題,雖然很粗糙。爲什麼R中的agrep找不到最佳匹配?
example1 <- c("height","weight")
example2 <- c("height","weight")
y <- c("","")
for(i in 1: 2){
x <- agrep(example1[i], example2, max.distance = 1, ignore.case=TRUE, value=TRUE, useBytes=TRUE)
x <- paste0(x,"")
y[i] <- x
}
正如你將有希望看到的那樣,agrep已經將體重與身高匹配,當體重更好時,體重也會出現。
這是爲什麼?
值'x'是一個包含兩個值的向量,但只有第一個被分配給'y'(你應該有一個警告),所以只給出'height' – etienne
所以x包含滿足條件的所有匹配,並且我只是選擇第一個這些,這不一定是最好的匹配? 有沒有提取最好的方法? 目前我不得不做一個完全匹配,然後模糊匹配來解決問題。然而,這個例子並沒有讓我充滿信心,因爲我的模糊匹配的其餘部分。 – LanieD
是的就是這樣。你可以看看[這個問題的最佳匹配](http://stackoverflow.com/questions/5721883/agrep-only-return-best-matches/27090472) – etienne