Realizar una unión por distancia de cadenas
Reunir dos fuentes de datos diferentes es una tarea muy común en análisis de datos. Siempre que sea posible, deberías usar valores claramente identificables, como una dirección de correo, para unir dos tablas. Pero ¿y si una persona solo introdujo su nombre y tienes que buscarlo en una base de datos de usuarios? La dificultad: la gente puede abreviar su nombre o apellido, cometer un error tipográfico o incluso omitir partes.
En el entorno hay dos data frames: user_input y database. El primero contiene la entrada defectuosa del usuario y el segundo los nombres correctos, pero ambas fuentes de datos contienen los mismos 100 nombres. ¿Cuántos puedes emparejar con una unión por distancia de cadenas? Por cierto: No se ha definido ningún method de distancia, así que se usará el predeterminado, Optimal String Alignment "osa".
Este ejercicio forma parte del curso
Expresiones regulares intermedias en R
Instrucciones del ejercicio
- Une
user_inputydatabasecon una distancia máxima entre cadenasmax_distpara que exactamente ochenta nombres se emparejen correctamente. Experimenta hasta encontrar la distancia máxima adecuada. - Usa la nueva tabla
joinedpara imprimir una frase de informe fácil de leer.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Join the data frames on a maximum string distance of 2
joined <- stringdist_join(
user_input,
database,
by = c("user_input" = "name"),
___ = ___,
distance_col = "distance",
ignore_case = TRUE
)
# Print the number of rows of the newly created data frame
print(glue(
"{n} out of 100 names were matched successfully",
n = nrow(___)
))