[R-es] Optimización identificación de casos similares

David Contreras d@v|dcontrer@@00 @end|ng |rom gm@||@com
Jue Feb 7 17:23:45 CET 2019


Buen día a todos,

Agradezco su ayuda con lo siguiente:

Tengo 100.000 registros con nombres de personas con su respectivo número de
documento, quiero identificar casos que tengan un porcentaje de igualdad
alto, no del 100% porque ya esos los tengo identificados, sino casos como
por ejemplo:

Nombre: Juan Pérez  Documento: 123456789
Nombre: Juan Pérez  Documento: 1234056789

Este caso sería una alerta de posible duplicado y tendría que revisarse
porque posiblemente en uno de los dos casos se ingreso errado el número de
documento.

Para calcular esta diferencia uso la función adist del paquete (utils), el
problema es que la forma en que tengo el código para revisar los 100.000
casos, la máquina no lo soporta por los recorridos que se hacen:

*El dataframe se llama Citacion.*

*Citacion[,"NombreDoc"]<- paste0(Citacion[,"NOMBRE"]," ",
Citacion[,"DOCUMENTO"]) # Concatena Nombre y documento*

*Citacion[,"RNomDoc1"]<-0*
*Citacion[,"RNomDoc2"]<-0*

*ii<-1*
*for(ii in 1:(nrow(Citacion)-1)){*
*  jj<-ii+1*
*  while(jj<=nrow(Citacion)){*

*    if (adist(Citacion[ii,"NombreDoc"],
Citacion[jj,"NombreDoc"])/nchar(Citacion[ii,"NombreDoc"])<0.15){  #
Criterio para marcar los posibles casos duplicados*
*      Citacion[ii,"RNomDoc1"]<-1*
*      Citacion[jj,"RNomDoc2"]<-1*
*      jj<-jj+1*
*      } else {*
*        Citacion[jj,"RNomDoc2"]<-0*
*        jj<-jj+1*
*        } *
*  } *

*}  *

La idea es optimizar el código de alguna forma para agilizar el proceso y
lograr que se identifiquen los casos a revisar.

Mil gracias de nuevo.

	[[alternative HTML version deleted]]



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