在R,agrep
返回它找到了一個匹配,不匹配
agrep('chrg', c('charge', 'trapper', 'friend', 'charger'))
# [1] 1 4
如果你想擁有的價值,而不是指數的數量指標的功能,你可以通過value=TRUE
。您更新後
agrep('chrg', c('charge', 'trapper', 'friend', 'charger'), value=TRUE)
# [1] "charge" "charger"
編輯:這裏
如果x1
和是同相(每個索引你有相同活動的名字)是一個片段,它會做的伎倆。
subs <- function(x, old, new) {
# Replace 'old' by 'new' in 'x'.
matchv <- match(x, old, nomatch=0)
replace(x, matchv > 0, new[matchv])
}
# y is any vector that contains short names.
subs(y, x1, x3)
如果他們不是同相的,你可以用agrep
如下創建old
和new
載體。
oldnew <- sapply(x1, function(x) { agrep(x, x3, value=TRUE)[1] })
subs(y, names(oldnew), oldnew)
@ gui1aume對不起,我沒有正確輸入關於agrep的部分,現在我已經修復了它。感謝值的評論,但我不想看看哪些條目滿足條件 - 我正在尋找替換符合標準的值與另一個值。正如問題中所述,我不認爲agrep是使用的命令,我只是將它用作我正在尋找的模糊匹配類型的示例。它取代了這個問題的比賽。 – kirk 2012-07-28 20:22:49