gpt4 book ai didi

regex - R 同意 : how to match with more than 1 substitution

转载 作者:行者123 更新时间:2023-12-01 07:42:46 29 4
gpt4 key购买 nike

我正在尝试将字符串与字符串向量匹配:

a <- c('abcde', 'abcdf', 'abcdg')

agrep('abcdh', a, max.distance=list(substitutions=1))
# [1] 1 2 3

agrep('abchh', a, max.distance=list(substitutions=2))
# character(0)

我没想到后面的结果是用两个字符代替
模式使模式与向量元素相同。但是,这确实适用于 all而不是 substitutions :
agrep('abchh', a, max.distance=list(all=2))
# [1] 1 2 3

我需要更改什么以匹配允许的 1 个以上替换?是 substitution只是一个 splinter 的选择?谢谢。

注意:这个问题和这个问题本质上是一样的: https://stat.ethz.ch/pipermail/r-help/2011-June/281731.html ,但这从未得到回答。

最佳答案

无论如何,我没有意识到这些问题是那么古老:

功能需要cost适当。正如ping所说,您必须设置匹配成本的最大数量;在你的例子中:

a <- c('abcde', 'abcdf', 'abcdg')
agrep('abcdh', a, max.distance = list(cost = 1))
[1] 1 2 3
agrep('abchh', a, max.distance = 2)
[1] 1 2 3

现在,如果你设置 cost该程序可以进行插入、删除和替换。如果您只想评估替换,则:
agrep('abhhh', a, 
max.distance=list(cost=3, substitutions=3,
deletions=0, insertions=0))
[1] 1 2 3

关于regex - R 同意 : how to match with more than 1 substitution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24889949/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com