编辑:在 R 的 32 位版本中发现此错误已在 R 版本 2.9.2 中修复。
这是@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