쌍 생성 및 비교

R로 데이터 정리하기

Maggie Matsui

Content Developer @ DataCamp

조인이 통하지 않을 때

왼쪽 표: 이벤트와 시간. 예: Houston Rockets vs Chicago Bulls 19:00, Miami Heat vs Los Angeles Lakers 19:00, Brooklyn Nets vs Orlando Magic 20:00, Denver Nuggets vs. Miami Heat 21:00, San Antonio Spurs vs Atlanta Hawks 21:00. 오른쪽 표: NBA: Nets vs Magic 8pm, NBA: Bulls vs Rockets 9pm, NBA: Heat vs Lakers 7pm, NBA: Grizzlies vs Heat 10pm, NBA: Heat vs Cavaliers 9pm.

R로 데이터 정리하기

조인이 통하지 않을 때

R로 데이터 정리하기

레코드 링크란?

record_linkage_1.png

R로 데이터 정리하기

레코드 링크란?

왼쪽에 빗자루 아이콘이 있는 두 개의 데이터베이스, 라벨: Data A, Data B

R로 데이터 정리하기

레코드 링크란?

Data A와 Data B에서 세 쌍의 사람으로 화살표. 라벨: 쌍 생성.

R로 데이터 정리하기

레코드 링크란?

‘쌍 생성’에서 출발해 서로 다른 방향을 가리키는 화살표가 있는 두 열의 원으로 이동. 설명: 쌍 비교.

R로 데이터 정리하기

레코드 링크란?

‘쌍 비교’에서 화살표가 사람 그림으로, 사람이 .93이 적힌 표지판을 듦. 라벨: 쌍 점수화.

R로 데이터 정리하기

레코드 링크란?

‘쌍 점수화’에서 사슬로 가는 화살표. 라벨: 데이터 연결.

R로 데이터 정리하기

레코드 링크란?

같은 다이어그램에서 ‘쌍 생성’ 단계에 파란 상자 표시

R로 데이터 정리하기

레코드 쌍

두 개의 테이블 df_A와 df_B에 사람 이름, 우편번호, 주(state). df_A의 Keaton Z Snyder(15020, PA)와 df_B의 Keaton Snyder(15020, PA) 행이 강조됨.

R로 데이터 정리하기

쌍 생성하기

같은 테이블에서 df_A의 모든 행이 df_B의 모든 행과 선으로 연결됨(모든 조합).

R로 데이터 정리하기

R에서 쌍 생성

library(reclin)
pair_blocking(df_A, df_B)
Simple blocking
  No blocking used.
  First data set:  5 records
  Second data set: 5 records
  Total number of pairs: 25 pairs

ldat with 25 rows and 2 columns x y 1 1 1 2 2 1 3 3 1 ...
R로 데이터 정리하기

쌍이 너무 많음

같은 테이블이 더 많은 행으로 확장되고, 연결 선도 더 많아짐.

R로 데이터 정리하기

블로킹

같은 테이블에서 주(state)가 같은 행들만 선으로 연결.

블로킹 변수(주)가 일치할 때만 쌍을 고려

R로 데이터 정리하기

R에서 페어 블로킹

pair_blocking(df_A, df_B, blocking_var = "state")
Simple blocking                                 ldat with 8 rows and 2 columns
  Blocking variable(s): state                     x y
  First data set:  5 records                    1 1 1
  Second data set: 5 records                    2 1 4
  Total number of pairs: 8 pairs                3 2 3
                                                4 2 5
                                                5 3 2
                                                6 4 2
                                                7 5 1
                                                8 5 4
R로 데이터 정리하기

쌍 비교

레코드 링크 단계 다이어그램에서 ‘쌍 비교’ 단계가 강조됨.

R로 데이터 정리하기

쌍 비교

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

compare_pairs(by = "name", default_comparator = lcs())
Compare                                     ldat with 8 rows and 3 columns            
  By: name                                      x y      name
                                              1 1 1 0.3529412
Simple blocking                               2 1 4 0.3030303
  Blocking variable(s): state                 3 2 3 0.9285714
  First data set:  5 records                  4 2 5 0.2962963    
  Second data set: 5 records                  ...
  Total number of pairs: 8 pairs              8 5 4 0.3333333
R로 데이터 정리하기

여러 열 비교

pair_blocking(df_A, df_B, blocking_var = "state") %>%
  compare_pairs(by = c("name", "zip"), default_comparator = lcs())
Compare                                    ldat with 8 rows and 4 columns
  By: name, zip                              x y      name zip
                                           1 1 1 0.3529412 0.4
Simple blocking                            2 1 4 0.3030303 0.2
  Blocking variable(s): state              3 2 3 0.9285714 1.0
  First data set:  5 records               4 2 5 0.2962963 0.2
  Second data set: 5 records               ...
  Total number of pairs: 8 pairs           8 5 4 0.3333333 0.2
R로 데이터 정리하기

다양한 비교기

  • default_comparator = lcs()
  • default_comparator = jaccard()
  • default_comparator = jaro_winkler()
R로 데이터 정리하기

Passons à la pratique !

R로 데이터 정리하기

Preparing Video For Download...