Rで住所を処理しているときに全国地方公共団体コード(都道府県コード、市区町村コード、JISコード)(以下団体コード)を求める必要があった。
総務省のホームページから団体コードのEXCELファイルをダウンロードしてきて、住所の都道府県と市区町村名と比較して中身を検索するだけの簡単な処理なのだが、コードを毎回書くのが面倒くさいのと総務省の団体コードのEXCELファイルの列名が改行コードを含んでいるのでそのままでもいいのだけれどちょっと取り扱いにくいので扱いやすいように前処理するのが毎度面倒なので関数化した。
Githubからインストールできるようにした(コードの散逸を防ぐためGithubをつかったとういう意味合いのほうが強い)。
install.packages("remotes") remotes::install_github("indenkun/jaddress.jiscode")
でインストールできる。
使い方
library(jaddress.jiscode)
都道府県名(漢字)と市町村名(漢字)を含む住所を入力すると団体コード(文字列)を出力する。
jaddress_jiscode("東京都新宿区西新宿2丁目8−1")
## [1] "13104"
デフォルトでは市区町村までのコードを出力するが、引数を指定すると都道府県コードまでの出力に変更することもできる。
jaddress_jiscode("東京都新宿区西新宿2丁目8−1", jis = "pref")
## [1] "13"
総務省の都道府県コード及び市区町村コードの形式ではない市区町村名でも可能な限り検索するように努めている。
# 北海道の月形町役場の住所は北海道樺戸郡月形町となっている。 # 総務省の市区町村コード表では月形町のみになっている。 # この場合、北海道樺戸郡月形町と入力されると北海道月形町の市区町村コードを出力するようにしている。 jaddress_jiscode("北海道樺戸郡月形町1219番地")
## [1] "01430"
住所の入力は都道府県と市区町村名が漢字で含まれていれば出力可能。
jaddress_jiscode("秋田県秋田市")
## [1] "05201"
全国に一箇所しか無い市区町村名の場合はそれだけでも団体コードを出力できるようにしている。
jaddress_jiscode("郡山市")
## [1] "07203"
市区町村名はあくまで全国地方公共団体コードとしての市区町村であって、例えば北区は東京都北区で、北海道札幌市北区の北区は確かに行政区だが北区としては判定していない(ちょっとややこしい)。全国に同名市区町村が複数ある市区町村はNA
を返す。
正しいコードがほしかったらちゃんと都道府県名と市町村名を漢字でフルスペルで入力するといい。6桁目(チェックディジット)も引数指定すると表示できる。
あとは、READMEに書いている(が上記がほとんどすべて)。
住所は基本的には依存関係の{zipangu}
パッケージが都道府県と市区町村名を判定できる形式ならその後、総務省の団体コードのリストに検索かけて探している力技処理になっている。
全国地方公共団体コードなんて、触る人と触らない人の差が圧倒的な気がするし、Rで住所からの一括処理する需要なんてそんなに無いと思うが、自分は使う(使った)のでこれでヨシ(๑•̀ㅂ•́)و✧
もしかしたら探したらどこかにあるかもしれない(車輪の再開発かもしれない)が、そんなに込み入ったコードではなかったので楽にかけたのでこれもまたヨシ(๑•̀ㅂ•́)و✧