1

如何使用此代码匹配“abteam”和“ab”?

agrep("abteam",c("acb","abd","ab"),value=T,ignore.case = TRUE,max = list(del = 10, ins = 10, sub = 10))

结果是character(0),虽然我指定了del=10ins=10。问题是什么?如何agrep工作?

4

1 回答 1

2

从帮助文件:

如果未给出“成本”,则“全部”默认为 10%,其他转换数范围默认为“全部”。

据我了解,这意味着costorall是一个限制因素,即使您设置了del,inssub。如果您想允许 10 次转换,您可以简单地设置max = 10. 附加参数可用于限制特定转换,例如:

> x <- c("fooar","ooar","foobaz")
> agrep("foobar", x, value=T, max = list(all = 3, del = 0, ins = 0))
[1] "foobaz"

在您的情况下,您可以使用max = list(all = 10 ,del = 10, ins = 10, sub = 10)).

于 2015-06-23T05:48:37.293 回答