Есть несколько обсуждений, пример здесь , предлагая stringdst
в качестве лучшей / более быстрой альтернативы для agrep
. Однако я не могу выяснить или придумать сам, что за функция stringdst и как именно она выполняет agrep
. В то время как
agrep('aca','aabbbbbbbbbbbbbbbbbbbbbb',max.distance = 0.005)
ищет шаблон aca
в строке.
amatch('aca','aabbbbbbbbbbbbbbbbbbbbb',maxDist = 15)
сравнивает строки. Поэтому независимо от того, сколько еще символов я добавлю в строку, agrep
все же выдаст [1] 1
, если max.distance не изменится. В то же время расширение строки 'aabbbbbbbbb ...' в amatch
увеличивает расстояние между строками, поэтому результат изменяется с [1] 1
до [1] NA
. Как заставить amatch
или другую функцию из stringdst
вести себя как agrep
, то есть искать не точный шаблон в большей строке, а не сравнивать шаблон со всей строкой? И действительно ли эта потенциальная альтернатива будет быстрее, чем agrep
?