EDIT: Эта ошибка была обнаружена в 32-разрядных версиях R была исправлена в версии 2.9.2 R.неожиданные результаты agrep(), связанные с max.distance в R
Это написал мне @leoniedu сегодня, и у меня нет ответа на него, так что я думал, что я бы разместить его здесь.
Я прочитал документацию для agrep() (соответствие нечеткой строки), и кажется, что я не полностью понимаю параметр max.distance. Вот пример:
pattern <- "Staatssekretar im Bundeskanzleramt"
x <- "Bundeskanzleramt"
agrep(pattern,x,max.distance=18)
agrep(pattern,x,max.distance=19)
Это ведет себя точно так, как я ожидал. Между строками существует 18 символов, поэтому я ожидаю, что это будет порог соответствия. Вот что меня смущает:
agrep(pattern,x,max.distance=30)
agrep(pattern,x,max.distance=31)
agrep(pattern,x,max.distance=32)
agrep(pattern,x,max.distance=33)
Почему 30 и 33 матча, но не 31 и 32? Чтобы сэкономить вам несколько минут,
> nchar("Staatssekretar im Bundeskanzleramt")
[1] 34
> nchar("Bundeskanzleramt")
[1] 16
http://www.nabble.com/possible-agrep-bug--R-2.9.1,-Mac-OS-X-10.5-(PR-13789)-td24285192.html – ars
Последующие меры. Это была ошибка в 32 бит R, которая была исправлена в R2.9.2. (как подробно описано в сообщении Брайана Рипли с 14 августа в R-списке по ссылке выше.) –
если бы вы могли опубликовать этот комментарий в качестве ответа, я с радостью соглашусь с ним и закрою этот вопрос с ответом. Спасибо, что указали на исправление ошибок. –