문자열 거리 조인 수행하기
서로 다른 두 데이터 소스를 결합하는 작업은 데이터 분석에서 매우 흔합니다. 가능하다면 이메일 주소처럼 명확하게 식별 가능한 값을 사용해 두 테이블을 조인하는 것이 가장 좋습니다. 하지만 사용자가 이름만 입력했고, 여러분이 사용자 데이터베이스에서 이를 찾아야 한다면 어떨까요? 문제는 사람들이 이름이나 성을 줄여 쓰거나, 오타를 내거나, 일부를 통째로 빼먹을 수 있다는 점입니다.
스코프에는 두 개의 데이터 프레임 user_input과 database가 있습니다. 첫 번째에는 결함이 있는 사용자 입력이, 두 번째에는 올바른 이름이 들어 있지만, 두 소스 모두 동일한 100개의 이름을 갖고 있습니다. 문자열 거리 조인을 사용해 이들 중 몇 개를 매칭할 수 있을까요? 참고로, 거리 method는 지정되어 있지 않으므로 기본값인 Optimal String Alignment 거리 "osa"가 사용됩니다.
이 연습은 강의의 일부입니다
R 중급 정규 표현식
연습 안내
user_input과database를 최대 문자열 거리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(___)
))