ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Une user_input y database con una distancia máxima entre cadenas max_dist para que exactamente ochenta nombres se emparejen correctamente. Experimenta hasta encontrar la distancia máxima adecuada.
  • Usa la nueva tabla joined para 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(___)
))
Editar y ejecutar código