Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
agrep匹配是如何工作的?_R_Fuzzy Comparison_Agrep - Fatal编程技术网

agrep匹配是如何工作的?

agrep匹配是如何工作的?,r,fuzzy-comparison,agrep,R,Fuzzy Comparison,Agrep,agrep函数给出了一些令人费解的结果,我想更好地理解它的行为。例如: agrep("abcd",c("abc","abcde","abcef"),value=T,max.distance = 1) 返回: [1]“abc”“abcde”“abcef” 但是“abcd”和“abcef”之间的距离是2。所以我不知道为什么会出现第三场比赛 levenshteinDist("abcd","abcef") # gives the answer of 2 此外,我假设如果距离上限设置为0,则函数将仅返

agrep函数给出了一些令人费解的结果,我想更好地理解它的行为。例如:

agrep("abcd",c("abc","abcde","abcef"),value=T,max.distance = 1)
返回:
[1]“abc”“abcde”“abcef”

但是“abcd”和“abcef”之间的距离是2。所以我不知道为什么会出现第三场比赛

levenshteinDist("abcd","abcef") # gives the answer of 2
此外,我假设如果距离上限设置为0,则函数将仅返回精确匹配:

agrep("abcd",c("abc","abcde","abcef"),value=T,max.distance = 0)
但是,我得到了匹配的
[1]“abcde”


如果有人能解释agrep中的匹配是如何工作的,那将非常有帮助。

我怀疑
?agrep
中写得相当精辟的注释部分可能适用于这里。)@joran:你是说:“因为有人粗心地阅读了描述,甚至提交了一份错误报告,请注意,这与x的每个元素的子字符串相匹配(就像grep所做的那样),而不是整个元素。另请参阅包utils中的adist,它可以选择返回匹配子字符串的偏移量。”我读过,但不完全理解..不熟悉grep的工作原理是的,“它匹配x的每个元素的子字符串(就像grep一样),而不是整个元素”。所以
“abcd”
只需位于比较字符串子字符串的1以内。它正在(描述部分使用的词)内寻找匹配项。@joran hm有趣,感谢您的回复!因此,为了澄清,第一个示例中“abcd”与“abcef”匹配的原因是,如果从“abcd”中删除“d”,它将与“abcef”中的子字符串“abc”匹配?这是否也意味着转换总是在模式参数上执行?我相信是的。我会把它描述为“我能把模式转换成x元素的子字符串吗?”如果是,它匹配。agrep的来源是,如果你知道C,那将是最终的答案。