EDIT: Ce bug a été constaté dans les versions 32 bits de R a été corrigé dans R version 2.9.2.résultats inattendus agrep() liés à max.distance dans R
Cela m'a été tweeté par @leoniedu aujourd'hui et je n'ai pas de réponse à lui donc je pensais que je posterais ici.
J'ai lu la documentation de agrep() (correspondance de chaînes floues) et il semble que je ne comprenne pas complètement le paramètre max.distance. Voici un exemple:
pattern <- "Staatssekretar im Bundeskanzleramt"
x <- "Bundeskanzleramt"
agrep(pattern,x,max.distance=18)
agrep(pattern,x,max.distance=19)
Cela se comporte exactement comme je m'attendais. Il y a 18 caractères différents entre les cordes, donc je m'attends à ce que ce soit le seuil d'un match. Voici ce qui me dérange:
agrep(pattern,x,max.distance=30)
agrep(pattern,x,max.distance=31)
agrep(pattern,x,max.distance=32)
agrep(pattern,x,max.distance=33)
Pourquoi 30 et 33 correspond, mais pas 31 et 32? Pour vous éviter de compter,
> 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
Suivi. C'était un bug dans le 32 bits R, qui a été corrigé dans R2.9.2. (comme détaillé dans le message de Brian Ripley du 14 août à R-list dans le lien ci-dessus.) –
si vous pouviez publier ce commentaire comme réponse, je l'accepterais volontiers et clôturerais cette question avec une réponse. Merci d'avoir signalé le problème. –