Rで日本語の都道府県データを取り扱う際、「秋田県」や「千葉」といった日本語表記を「Akita」、「Chiba」などの英語(ローマ字)表記に変換したい場面がよくあると思う(私はある)。
しかし、単純な文字置換だと「都・府・県」がついているものとついていないものが混在していたり、都道府県以外の地名(「横浜市」や「合計」など)が混じっていてエラーや意図しないNAになってしまったりすることがあり困ることがある(行政が作成るデータで頻繁に遭遇する)。
そもそも、47都道府県名の文字列置換処理を毎回書くのが綴りミスなど気にかけることが多すぎて(内容は単純だが)大変すぎる。
そこで、自作Rパッケージinfunに、これらの表記揺れや非対応テキストを柔軟に処理できる軽量な関数to_eng_pref()を追加したので自分用にもメモしておく。
主な特徴
- 「都・府・県」の表記揺れを自動吸収:
「秋田県」「秋田」のどちらが入力されても正確に
Akitaへ変換できる(「北海道」はそのまま保持)。 - 非対応テキストの柔軟な処理:
都道府県以外の地名が混ざっている場合、デフォルトでは元の文字列を維持する。必要に応じて
NAや任意の代替文字列(例:"Other")を返す指定も可能。
インストール方法
GitHubから{infun}パッケージをインストールすることで使える。
# remotesパッケージを使ってGitHubからインストール remotes::install_github("indenkun/infun")
使い方・コード例
基本的な使い方は非常にシンプル。
library(infun) # 基本的な使用例(都道府県以外の地名はそのまま維持) test_data <- c("秋田県", "横浜市", "千葉", "合計", "東京都") to_eng_pref(test_data)
## [1] "Akita" "横浜市" "Chiba" "合計" "Tokyo"
該当しない要素の制御(default 引数)
都道府県名として認識されなかったデータに対する挙動はdefault引数で制御できる。
# 未マッチの要素を NA に置換したい場合 to_eng_pref(test_data, default = NA)
## [1] "Akita" NA "Chiba" NA "Tokyo"
# 未マッチの要素を特定の文字列に置換したい場合 to_eng_pref(test_data, default = "Other")
## [1] "Akita" "Other" "Chiba" "Other" "Tokyo"
おわりに
今月何も書いてないなと思って書いた。
データクレンジングや可視化の事前処理において、地名データの英語化(ローマ字化)にお悩みの方はぜひお試しください。
今どきならこういう単純で簡単な処理であれば毎回AIに書かせるのもありかもしれないなと思いながら、毎回意図した挙動をしてくれる(例えばマッチしなかったらどうするかの処理など)ようにするにはひと手間がかかることが割とある(要件定義の言語化が不十分なのが大きな要素だと思うが)ので、関数として持っておくのはいいと思う。












