編輯:在R版本2.9.2中修復了32位版本的R中發現的此錯誤。意外的agrep()與R中的max.distance有關的結果
今天我在@leoniedu上發佈了推文,我沒有回答他,所以我想我會在這裏發佈。
我已經閱讀了agrep()(模糊字符串匹配)的文檔,看來我並沒有完全理解max.distance參數。這裏有一個例子:
pattern <- "Staatssekretar im Bundeskanzleramt"
x <- "Bundeskanzleramt"
agrep(pattern,x,max.distance=18)
agrep(pattern,x,max.distance=19)
這和我所期望的完全一樣。字符串之間有18個不同的字符,所以我期望這是匹配的閾值。這是什麼使我困惑:
agrep(pattern,x,max.distance=30)
agrep(pattern,x,max.distance=31)
agrep(pattern,x,max.distance=32)
agrep(pattern,x,max.distance=33)
爲什麼30和33匹配,但不是31和32?爲了節省您一些計數,
> nchar("Staatssekretar im Bundeskanzleramt")
[1] 34
> nchar("Bundeskanzleramt")
[1] 16
http://www.nabble.com/possible-agrep-bug--R-2.9.1,-Mac-OS-X-10.5-(PR-13789)-td24285192.html – ars 2009-07-25 21:49:54
跟進。這是32位R中的一個bug,它在R2.9.2中得到了修復。 (詳見Brian Ripley在8月14日在上述鏈接中的R-列表中的消息。) – 2009-09-03 01:06:49
如果您可以發表該評論作爲答案,我會高興地接受並回答此問題。感謝您指出錯誤修復。 – 2009-09-03 17:01:26