Generar y comparar pares

Limpieza de datos en R

Maggie Matsui

Content Developer @ DataCamp

Cuando los joins no sirven

La tabla de la izquierda tiene columnas de evento y hora. Partidos: Houston Rockets vs Chicago Bulls a las 19:00. Miami Heat vs Los Angeles Lakers a las 19:00. Brooklyn Nets vs Orlando Magic a las 20:00. Denver Nuggets vs Miami Heat a las 21:00. San Antonio Spurs vs Atlanta Hawks a las 21:00. La tabla de la derecha tiene: NBA: Nets vs Magic a las 8 pm. NBA: Bulls vs Rockets a las 9 pm. NBA: Heat vs Lakers a las 7 pm. NBA: Grizzlies vs Heat a las 10 pm. NBA: Heat vs Cavaliers a las 9 pm.

Limpieza de datos en R

Cuando los joins no sirven

Limpieza de datos en R

¿Qué es el record linkage?

record_linkage_1.png

Limpieza de datos en R

¿Qué es el record linkage?

A la izquierda, dos bases de datos con escobas etiquetadas como Data A y Data B

Limpieza de datos en R

¿Qué es el record linkage?

Flechas van desde Data A y Data B a tres pares de personas, con la etiqueta Generar pares

Limpieza de datos en R

¿Qué es el record linkage?

Una flecha va de generar pares a dos columnas de círculos con flechas entre sí en varias direcciones. Descripción: comparar pares.

Limpieza de datos en R

¿Qué es el record linkage?

Una flecha va de comparar pares a una figura sosteniendo un cartel que dice .93. Etiqueta: puntuar pares.

Limpieza de datos en R

¿Qué es el record linkage?

Flecha desde puntuar pares hacia una cadena, con la etiqueta enlazar datos.

Limpieza de datos en R

¿Qué es el record linkage?

Mismo diagrama con un recuadro azul alrededor del paso generar pares

Limpieza de datos en R

Pares de registros

Dos tablas, df_A y df_B, con nombres, códigos postales y estado. Una fila en df_A está resaltada: Keaton Z Snyder, zip 15020, estado PA. Una fila en df_B está resaltada: Keaton Snyder, zip 15020, estado PA.

Limpieza de datos en R

Generar pares

Mismas tablas con líneas desde cada fila de df_A a cada fila de df_B para mostrar todas las combinaciones.

Limpieza de datos en R

Generar pares en R

library(reclin)
pair_blocking(df_A, df_B)
Simple blocking
  No se usa bloqueo.
  Primer conjunto de datos:  5 registros
  Segundo conjunto de datos: 5 registros
  Número total de pares: 25 pares

ldat con 25 filas y 2 columnas x y 1 1 1 2 2 1 3 3 1 ...
Limpieza de datos en R

Demasiados pares

Mismas tablas, extendidas hacia abajo con más filas y aún más líneas conectando cada par.

Limpieza de datos en R

Bloqueo

Mismas tablas, pero solo se conectan con líneas las filas con el mismo estado.

Considera pares solo cuando coincidan en la variable de bloqueo (State)

Limpieza de datos en R

Bloqueo de pares en R

pair_blocking(df_A, df_B, blocking_var = "state")
Simple blocking                                 ldat con 8 filas y 2 columnas
  Variable(s) de bloqueo: state                   x y
  Primer conjunto de datos:  5 registros        1 1 1
  Segundo conjunto de datos: 5 registros        2 1 4
  Número total de pares: 8 pares                3 2 3
                                                4 2 5
                                                5 3 2
                                                6 4 2
                                                7 5 1
                                                8 5 4
Limpieza de datos en R

Comparar pares

Diagrama de pasos de record linkage con el paso comparar pares resaltado.

Limpieza de datos en R

Comparar pares

pair_blocking(df_A, df_B, blocking_var = "state") %>%

compare_pairs(by = "name", default_comparator = lcs())
Compare                                     ldat con 8 filas y 3 columnas            
  By: name                                      x y      name
                                              1 1 1 0.3529412
Simple blocking                               2 1 4 0.3030303
  Variable(s) de bloqueo: state                 3 2 3 0.9285714
  Primer conjunto de datos:  5 registros          4 2 5 0.2962963    
  Segundo conjunto de datos: 5 registros              ...
  Número total de pares: 8 pares              8 5 4 0.3333333
Limpieza de datos en R

Comparar varias columnas

pair_blocking(df_A, df_B, blocking_var = "state") %>%
  compare_pairs(by = c("name", "zip"), default_comparator = lcs())
Compare                                    ldat con 8 filas y 4 columnas
  By: name, zip                              x y      name zip
                                           1 1 1 0.3529412 0.4
Simple blocking                            2 1 4 0.3030303 0.2
  Variable(s) de bloqueo: state              3 2 3 0.9285714 1.0
  Primer conjunto de datos:  5 registros       4 2 5 0.2962963 0.2
  Segundo conjunto de datos: 5 registros       ...
  Número total de pares: 8 pares           8 5 4 0.3333333 0.2
Limpieza de datos en R

Comparadores distintos

  • default_comparator = lcs()
  • default_comparator = jaccard()
  • default_comparator = jaro_winkler()
Limpieza de datos en R

¡Vamos a practicar!

Limpieza de datos en R

Preparing Video For Download...