• ここで使っている R パッケージ一覧
library(ggthemes)
library(ggrepel)
library(httr)
library(jpndistrict)
library(sf)
library(tidyverse)

1. 東京23区の人口別地図を描く

  • 2015年度の東京都(23区)の人口のコロプレス地図を作成
  1. 東京都の「地図データ」と「人口データ」を取得する
  2. 2 つのデータをマージする
  3. マップを描く   
  • 地図を描くために必要な変数は次の 3 つ
  1. 地図データの変数
  2. 人口データの変数
  3. 区と市と町の名称
  • ここでは 2 つのセクション(地図データと人口データ)に分けて、データの入手方法とデータの加工方法、地図の描き方を解説する

1.1 東京23区の地図データを取得

  • ne_states()関数 では市区町村までマッピングすることはできまない
  • 徳島大学の瓜生真也先生が公開している {jpndistrict}パッケージ を使う
  • 地図を描くために {jpndistrict}パッケージが必要
  • しかし、{jpndistrict}パッケージは、CRAN からダウンロードできない

解決策:

  • github 経由で{jpndistrict}パッケージをインストールする
    → {remotes}パッケージをインストールする
    → 次のコードを Console に打ち込む(この作業は一度だけでよい)
install.packages("remotes")
remotes::install_github("uribo/jpndistrict")
  • 次に、インストールされた {jpndistrict} パッケージを読み込む
library(jpndistrict)

→ 東京都の地図データを抽出する
df_tokyo_map という名前を付ける

df_tokyo_map <- jpn_pref(admin_name = "東京都")
  • df_tokyo_map の型をチェックしてみる
class(df_tokyo_map)
[1] "sf"         "tbl_df"     "tbl"        "data.frame"
  • 東京都の地図をプロットしてみる
df_tokyo_map |> 
  ggplot() +
  geom_sf() +
  theme_minimal()

- 東京都の区域は本州の「東京地方」と「島嶼部」から構成
- 「東京地方」の23特別区で構成される東京都区部(23区)だけを表示させる

df_tokyo_map <- jpn_pref(admin_name = "東京都") %>% 
  dplyr::filter(str_detect(city, "区")) # 23区だけを抜き取る設定
  • 東京都の地図をプロットしてみる
df_tokyo_map |> 
  ggplot() +
  geom_sf() +
  theme_minimal()

  • df_dtokyo_map の中身を確認し、東京都の pref_code を確認する
DT::datatable(df_tokyo_map)
  • 東京都の pref_code は 13

→ 東京都の地図データ + 23区のみ抜き取る

df_tokyo_map <- jpn_pref(13, district = TRUE) %>% 
  dplyr::filter(str_detect(city, "区")) # 23区だけを抜き取る設定
  • データの始めの部分を表示
head(df_tokyo_map, 23)
  • マップを描くために必要な変数 (city, geomety) だけに絞る
df_tokyo_map <- df_tokyo_map %>% 
  select(city, geometry)
  • 抜き取ったデータの始めの部分を表示
head(df_tokyo_map, 23)
  • これで必要なマップデータを入手できた   

  • df_tokyo_map の中身を確認し、東京都の pref_code を確認する

DT::datatable(df_tokyo_map)
  • 東京都の pref_code は 13

→ 東京都の地図データ + 23区のみ抜き取る

df_tokyo_sf <- jpn_pref(13, district = TRUE) %>% 
  dplyr::filter(str_detect(city, "区")) # 23区だけを抜き取る設定
  • 抜き取った東京23区の地図を表示    
df_tokyo_sf %>%
  ggplot() +
  geom_sf() +
  theme_minimal()

  • データの始めの部分を表示
head(df_tokyo_sf, 23)
  • マップを描くために必要な変数 (city, geomety) だけに絞る
df_tokyo_sf <- df_tokyo_sf %>% 
  select(city, geometry)
  • 抜き取ったデータの始めの部分を表示
head(df_tokyo_sf, 23)
  • これで必要なマップデータを入手できた   

1.2 東京23区の人口データを取得

  • 都道府県の人口データ取得方法は次の 2 つ
  1. 「政府統計の総合窓口(e-Stat)にアクセスして手動でデータをダウンロード
  2. 「政府統計の総合窓口(e-Stat)にアクセスして「アプリケーションID」を取得し自動でデータをダウンロード
  • 好みに応じてデータを取得する
  • ここではそれぞれの方法を解説する

1.2.1 e-Stat からダウンロード(手動)

  • 「市町村データ」 → 「データ表示」をクリック

  • 絞り込みの【表示データ】で「現在の市区町村」
  • 【地域区分】で「東京都」
  • 【絞り込み】で「特別区」
    → 「実行」をクリック

  • 「全て選択」→ 「確定」クリック

  • 【項目候補】から「A1101 総人口(人)」を選び → 「項目を選択」をクリック

  • 「確定」をクリック

  • 画面右上の「ダウンロード」をクリック

【ダウンロードの範囲】から「ページ上部の選択項目(調査年)」を選ぶ
【ファイル形式】から「csv形式」を選ぶ
【ヘッダの出力】から「出力しない」を選ぶ
【コードの出力】から「出力しない」を選ぶ
✅️データがない行を表示しない
✅️データがない列を表示しない
→ 「ダウンロード」をクリック

→ 「ダウンロード」をクリック
→ ダウンロードした csv ファイルを開く

  • 変数名の変更:
「調査年」 → year
「地域」 → city
「A1101_総人口【人】」 → population

  • 「/項目」の列は削除する
  • 「/項目」の列を選ぶ →「編集」→「削除」を選ぶ

  • city 内にある「東京都 」(東京都と半角スペース)を削除する
  • B にカーソルを当てて変数 city 列を選び「編集」→「検索」→「置換」
    → 「検索する文字列」に「東京都」という文字と「半角スペース」を入力
    → 「すべて置換」をクリック