Какова логика c приблизительного соответствия строк? - PullRequest
1 голос
/ 28 февраля 2020

Кто-нибудь знает причину следующего примера:

agrepl("cold", "cool")
#> [1] FALSE
agrepl("cool", "cold")
#> [1] TRUE

1 Ответ

4 голосов
/ 28 февраля 2020

Так как max distance по умолчанию:

Если стоимость не указана, для всех по умолчанию установлено значение 10%, а для других чисел преобразования установлены значения по умолчанию для всех. Имена компонентов могут быть сокращены.

И:

Выражается либо как целое число, либо как часть длины шаблона, умноженная на максимальную стоимость преобразования (будет заменена на наименьшее целое число не меньше соответствующей дроби)

Максимальное количество преобразований по умолчанию для шаблона длины 4 равно 1. cool -шаблон соответствует col в начале cold с использованием только 1 удаления. Изменение cold для соответствия cool потребует как минимум двух преобразований (два подстановки или одно удаление и одна вставка).

Эти примеры могут объяснить это немного дальше:

agrepl("cold", "cool",max.distance = 1) # two changes necessary
#> [1] FALSE
agrepl("cold", "cool",max.distance = 2)
#> [1] TRUE
agrepl("cold", "coold") # just one addition necessary
#> [1] TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...