[R-es] bug en funcion 'agrep'

luis.cayuela en urjc.es luis.cayuela en urjc.es
Jue Ene 19 10:38:54 CET 2012


Estimados R-users:

Estoy intentando usar la función 'agrep' para hacer búsquedas en  
cadenas de texto. El parámetro max.distance permite controlar la  
medida de aproximación de búsqueda de la función de Levenshtein. No  
obstante, cuando hago búsquedas específicas no obtengo siempre el  
resultado deseado y no se si es un bug o que no entiendo bien el  
algoritmo de búsqueda. Por ejemplo:

> agrep("Acacia m1", "Acacia macradenia", value=T, max.distance=list(all=1))
[1] "Acacia macradenia"
> agrep("Acacia m1", "Acacia macradenia", value=T,  
> max.distance=list(deletions=1))
[1] "Acacia macradenia"
> agrep("Acacia m1", "Acacia macradenia", value=T,  
> max.distance=list(insertions=1))
[1] "Acacia macradenia"

Cuando en cualquiera de los casos no debería de hacer el "matching".  
Sin embargo si la segunda palabra empieza por otra letra en vez de por  
"m", entonces funciona bien:

> agrep("Acacia m1", "Acacia pacradenia", value=T, max.distance=list(all=1))
character(0)
> agrep("Acacia m1", "Acacia pacradenia", value=T,  
> max.distance=list(deletions=1))
character(0)
> agrep("Acacia m1", "Acacia pacradenia", value=T,  
> max.distance=list(deletions=2))
character(0)

¿Alguien sabe qué puede estar pasando? ¿alguna solución?

Estoy usando R 2.12.1 bajo Linux Ubuntu Natty Narwhal 11.04.

Saludos y gracias por la ayuda,

Luis

------------------------------------
Luis Cayuela
Área de Biodiversidad y Conservación
Universidad Rey Juan Carlos
Departamental 1 DI. 231
c/ Tulipán s/n.
E-28933 Móstoles (Madrid)
España
Tlf: 914888517
http://www.escet.urjc.es/biodiversos/espa/personal/luisc/luisc_e.htm



Más información sobre la lista de distribución R-help-es