文字列距離結合を実行する
異なるデータソースを統合することは、データ分析で非常によくある作業です。可能であれば、メールアドレスのような明確に識別できる値を使って2つのテーブルを結合するのが理想的です。しかし、ユーザーが名前しか入力しておらず、ユーザーデータベースで照合しなければならない場合はどうでしょうか。ここでの難しさは、名や姓を省略したり、タイプミスがあったり、一部をまったく入力していないことがある点です。
スコープには2つのデータフレーム user_input と database があります。前者には不完全なユーザー入力、後者には正しい名前が入っていますが、どちらのデータソースにも同じ100件の名前が含まれています。文字列距離結合を使って、そのうち何件を一致させられるでしょうか。ちなみに、距離の method は定義されていないため、デフォルトの最適文字整列距離 "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(___)
))