« [R]パッケージの関数を使う | トップページ | [R]オブジェクトのモードを調べる »

2023年12月24日 (日)

[R]郵便番号の一覧を得る

以下は2023年12月中旬に、日本郵便株式会社のウェブサイトから郵便番号の情報が納められたファイルをダウンロードして、郵便番号とそれに対応する町域等をデータフレームにした例。UTF-8形式のファイルをダウンロードしている。ダウンロードしたファイルはテンポラリファイルとして保存をして削除をしているが、そのファイルから展開したファイル(utf_ken_all.csv)はカレントディレクトリに保存をして、そのまま残していることに注意。

> url <- "https://www.post.japanpost.jp/zipcode/dl/utf/zip/utf_ken_all.zip"
> tfile <- tempfile()
> download.file(url, tfile)
URL 'https://www.post.japanpost.jp/zipcode/dl/utf/zip/utf_ken_all.zip' を試しています
Content type 'application/zip' length 2030910 bytes (1.9 MB)
downloaded 1.9 MB
> unzip(tfile)
> unlink(tfile)
> file.info(dir(pattern = "utf_ken_all\\.csv"))["size"]
size
utf_ken_all.csv 18333268
> zip <- read.table("utf_ken_all.csv", sep = ",", colClasses = "character")

町域で検索を試してみる。レゴランドジャパンが位置する住所(金城ふ頭)を検索してみると、一か所しか登録されていないことがわかる。ユニバーサル・スタジオ・ジャパンが位置する「桜島」も同様。「安野」が含まれる町域は複数あるが「希世乃」という町域は一か所も登録されていないことがわかる。

> subset(zip, grepl("^金城ふ頭$", V9), c(V3, V7, V8, V9))
V3 V7 V8 V9
67272 4550848 愛知県 名古屋市港区 金城ふ頭
> subset(zip, grepl("^桜島$", V9), c(V3, V7, V8, V9))
V3 V7 V8 V9
84513 5540031 大阪府 大阪市此花区 桜島
> subset(zip, grepl("安野", V9), c(V3, V7, V8, V9))
V3 V7 V8 V9
47777 9592003 新潟県 阿賀野市 安野町
47936 9592004 新潟県 阿賀野市 南安野町
49858 9300087 富山県 富山市 安野屋町
110837 7890253 高知県 長岡郡大豊町 安野々
114419 8380213 福岡県 朝倉郡筑前町 安野
> subset(zip, grepl("希世乃", V9), c(V3, V7, V8, V9))
[1] V3 V7 V8 V9
<0 行> (または長さ 0 の row.names)

« [R]パッケージの関数を使う | トップページ | [R]オブジェクトのモードを調べる »

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

コメント

コメントを書く

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

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

« [R]パッケージの関数を使う | トップページ | [R]オブジェクトのモードを調べる »