始める無料で始める

文字列距離結合を実行する

異なるデータソースを統合することは、データ分析で非常によくある作業です。可能であれば、メールアドレスのような明確に識別できる値を使って2つのテーブルを結合するのが理想的です。しかし、ユーザーが名前しか入力しておらず、ユーザーデータベースで照合しなければならない場合はどうでしょうか。ここでの難しさは、名や姓を省略したり、タイプミスがあったり、一部をまったく入力していないことがある点です。

スコープには2つのデータフレーム user_inputdatabase があります。前者には不完全なユーザー入力、後者には正しい名前が入っていますが、どちらのデータソースにも同じ100件の名前が含まれています。文字列距離結合を使って、そのうち何件を一致させられるでしょうか。ちなみに、距離の method は定義されていないため、デフォルトの最適文字整列距離 "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(___)
))
コードを編集して実行