開始使用免費開始

執行字串距離連接

在資料分析中,整合兩個不同的資料來源非常常見。只要有機會,最好用像電子郵件地址這樣容易辨識的值來連接兩個資料表。不過,若使用者只輸入了姓名,而你需要在使用者資料庫中查找該筆資料,該怎麼辦?難點在於:人名可能會縮寫名字或姓氏、輸入錯字,或是直接漏掉部分。

在這個情境中有兩個資料框:user_inputdatabase。前者包含有瑕疵的使用者輸入,後者則是正確的姓名,但兩個資料來源都含有相同的 100 筆姓名。用字串距離連接,你能配對到多少筆?順帶一提:並未指定距離的 method,因此會使用預設的最佳字串對齊距離 "osa"

本練習屬於課程

R 中級 Regular Expressions

檢視課程

練習說明

  • 以最大字串距離 max_distuser_inputdatabase 連接,讓成功配對的姓名恰好為 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(___)
))
編輯並執行程式碼