시작하기무료로 시작하기

문자열 거리 조인 수행하기

서로 다른 두 데이터 소스를 결합하는 작업은 데이터 분석에서 매우 흔합니다. 가능하다면 이메일 주소처럼 명확하게 식별 가능한 값을 사용해 두 테이블을 조인하는 것이 가장 좋습니다. 하지만 사용자가 이름만 입력했고, 여러분이 사용자 데이터베이스에서 이를 찾아야 한다면 어떨까요? 문제는 사람들이 이름이나 성을 줄여 쓰거나, 오타를 내거나, 일부를 통째로 빼먹을 수 있다는 점입니다.

스코프에는 두 개의 데이터 프레임 user_inputdatabase가 있습니다. 첫 번째에는 결함이 있는 사용자 입력이, 두 번째에는 올바른 이름이 들어 있지만, 두 소스 모두 동일한 100개의 이름을 갖고 있습니다. 문자열 거리 조인을 사용해 이들 중 몇 개를 매칭할 수 있을까요? 참고로, 거리 method는 지정되어 있지 않으므로 기본값인 Optimal String Alignment 거리 "osa"가 사용됩니다.

이 연습은 강의의 일부입니다

R 중급 정규 표현식

강의 보기

연습 안내

  • user_inputdatabase를 최대 문자열 거리 max_dist로 조인해서 정확히 80개의 이름이 성공적으로 매칭되도록 하세요. 올바른 최대 거리를 찾을 때까지 실험해 보세요.
  • 새로 만든 테이블 joined를 사용해 사람이 읽기 쉬운 보고 문장을 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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(___)
))
코드 편집 및 실행