Gracias Jesús por tu ayuda. El tema es que como está el código si se identifican, pero el problema es que tiene que validar cada caso con los otros 99.999 casos y ahí la máquina no soporta el proceso.
*David Contreras* Estadístico Móvil 3124345188. <%2B57%20%281%29%204841410%20Ext.%20257> [email protected] <[email protected]> El jue., 7 feb. 2019 a las 11:31, Jesús Para Fernández (< [email protected]>) escribió: > Pues a mi se me ocurre algo chapuceril psp que puede funcionar. > > Separas cada dni ponkendo cada número en una columna. > > A continuación calculas las distancias y te quedas con aquellos cuya > distancia sea menor o igual a nueve. > > Tendras mucho falso positivo, eso si, pero se podria afinar mas.... > > Obtener Outlook para Android <https://aka.ms/ghei36> > > ------------------------------ > *From:* R-help-es <[email protected]> on behalf of David > Contreras <[email protected]> > *Sent:* Thursday, February 7, 2019 5:23:45 PM > *To:* r-help-es > *Subject:* [R-es] Optimización identificación de casos similares > > 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]] > > _______________________________________________ > R-help-es mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
