« [R]オブジェクトを削除する | トップページ | [R]パッケージの関数を使う »

2023年12月22日 (金)

[R]全国の地方自治体のコード(全国地方公共団体コード)を一覧形式で得る

地方公共団体情報システム機構のウェブサイト(https://www.j-lis.go.jp/)では、地方自治体に割り当てた6桁の数字(全国地方公共団体コード)を公開している。全国の地方自治体を一つにまとめたファイルを以前はダウンロードすることができたが、現在は登録した団体しかそのサービスを利用することができない。

ウェブサイトでは県別に一覧表を掲載しているため、これをスクレイピングすることで、一括で得ることができる。以下、入手例。

> library(rvest)
> library(tidyverse)
> url <- "https://www.j-lis.go.jp/spd/code-address/jititai-code.html"
> html <- read_html(url)
> node <- html %>% html_nodes("a")
> idx <- grep("[都道府県]内[区市]", node)
> url9 <- node[idx] %>% html_attr("href")
> url <- paste0("https://www.j-lis.go.jp", url9)
> la0 <- as_tibble(NULL)
> for (i in seq(url)) {
+ lis <- read_html(url[i]) %>% html_table()
+ la0 <- rbind(la0, lis[[1]])
+ }
> la <- select(la0, 1:3) %>% rename(code = 1, name = 2, furigana = 3)
> la <- la %>% mutate(code = sprintf("%06d", code))

以下は、2023年12月中旬に行った結果。市は792、町は743、村は183あることがわかる(北方領土の6村は含まない)。

> head(la, 3) %>% as.data.frame()
code name furigana
1 011002 札幌市 さっぽろし
2 011011 札幌市中央区 さっぽろしちゅうおうく
3 011029 札幌市北区 さっぽろしきたく
> tail(la, 3) %>% as.data.frame()
code name furigana
1 473758 多良間村 たらまそん
2 473812 竹富町 たけとみちょう
3 473821 与那国町 よなぐにちょう
> la %>% filter(str_detect(name, "市$")) %>% nrow()
[1] 792
> length(grep("町$", la$name))
[1] 743
> length(grep("村$", la$name))
[1] 183

« [R]オブジェクトを削除する | トップページ | [R]パッケージの関数を使う »

R(インターネット)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]オブジェクトを削除する | トップページ | [R]パッケージの関数を使う »