Exploratory コミュニティ

結合キーで表記揺れがあっても、結合したい

#1

例えば、下記のように2つのデータフレームがあって、Countryをキーにして結合したいとします。

ただ、データフレーム:AではJapanになっていますが、データフレーム:BではJapaneseとなっています。
データフレームBでは、国ではなく言語が混ざっていたりと、結合キーに表記揺れがあります。

image

表記揺れがあっても結合したい時には、fuzzyjoinというパッケージが使えます。

今回はその中でも、 文字列距離で結合ができる、stringdist_*_joinという関数を使います。

*の中にはleftやinnerなどの結合のタイプを指定できます。

fuzzyjoinには他にも、たくさんの関数があるので、興味がある方はこちらのページをご覧ください。

さて、Exploraotryでfuzzyjoinを使うためには、パッケージをインストールする必要があります。

プロジェクトメニューからRパッケージの管理を選択します。

image

パッケージをインストールのCRANに"fuzzyjoin"と入力してインストールボタンをクリックします。

image

インストール済みパッケージのfuzzyjoinにチェックがついていたら使用できます。

image

結合したいデータフレームのステップメニューからカスタムRコマンドを選択します。

image

stringdist_*_joinのシンタックスは下記のようになっています。

stringdist_left_join(<結合先データフレーム名>,  by = c(<結合元キー列名> = "<結合先キー列名>"), max_dist = <許容する距離>)

今回の場合は、カスタムRコマンドに下記のように記述しています。

stringdist_left_join(fuzzyjoin_test_1, by = c(Country = "Country"),max_dist = 4)

image

実行すると、JapanとChina、United Statesには表記揺れがありましたら、結合されていることが確認できます。

image

1 Like