Как с помощью этого кода можно сопоставить «abteam» с «ab»?
agrep("abteam",c("acb","abd","ab"),value=T,ignore.case = TRUE,max = list(del = 10, ins = 10, sub = 10))
Результат character(0)
, хотя я указал del=10
, ins=10
. В чем проблема? Как работает agrep
?
agrep(pat, x, value=T, max = list(all = 10 ,del = 10, ins = 0, sub = 10))
, ничего не возвращается. Это не имеет смысла — 4 удаления, больше ничего и"abteam"
соответствует"ab"
. 24.06.2015import tre; fz=tre.Fuzzyness(maxerr=10, maxdel=10, maxins=0, maxsub=10); pt=tre.compile("abteam"); pt.search("ab", fz)
. 24.06.2015agrep
настолько сбивает меня с толку, что в прошлом я обычно использовал вместо этогоadist
- по крайней мере, это дает хорошие четкие значения, которые я могу протестировать. 24.06.2015adist
довольно мило. Другой альтернативой является библиотека Biostrings. 25.06.2015