1 目的

市区町村データをダウンロードし,シェープファイルと結合し,可視化.

ライブラリ:tidyversesf

library(tidyverse)
library(sf)

2 学歴ダウンロード

  • 都道府県・市区町村のすがた(社会・人口統計体系) > 市区町村 > データ表示
    • 表示データ > 現在の市区町村
    • 地域区分 > 都道府県 > 埼玉県,千葉県,東京都,神奈川県
    • 絞り込み > デフォルトのまま(チェックのとおり)  
  • 「地域区分」で埼玉県を選択すると「地域候補」欄に埼玉県の市区町村が表示される.「全て選択する」をクリックすると,右の「選択中地域」欄に埼玉県の市区町村が表示される.
  • 続いて「地域区分」で千葉県を選択し,同様の作業を繰り返す.「選択中地域」欄には埼玉県の市区町村の後に,千葉県の市区町村が示される.
  • 東京都,神奈川県で同様の作業を繰り返す
  • これで「選択中地域」欄に 埼玉県,千葉県,東京都,神奈川県の市区町村が選ばれる.「確定」をクリック.
    • 絞り込み > データの種類:基礎データ > 分野:#E 教育
    • 項目候補 > #E9101 最終学歴人口(卒業者総数)(人)#E9106 最終学歴人口(大学・大学院)(人) > 確定  
  • ここでは次の形式でダウンロード.
    • 画面右上に表示される「ダウンロード」をクリック.
    • オプションページ上部の選択項目,CSV形式,ヘッダ出力しない,コード出力する,階層コード出力しない,凡例出力しない,注釈を表示するのチェックを外す,桁区切り(,)を使用しないとし,CSV形式のデータをダウンロード.
    • ダウンロードしたファイルは同じフォルダー(ディレクトリ)に格納.
  • read.csv():csvファイルの読込.edu_backと名付ける.
    • sep=","はデータがカンマで区切られていることを意味する.CSV形式のデータをメモ帳やEXCELで開くと,データがカンマで区切られていることがわかる.
    • header=TRUEは列名が含まれていることを意味する.仮に列名がなければFALSEskip=1は1番最初の行を削除することを意味する.CSV形式のデータをメモ帳やEXCELで開くと,最初の2行に列名(項目名)が記されている.ここでは,1行目は利用しない.
    • fileEncoding="CP932"により文字化けを回避.
#最終学歴人口(卒業者総数),最終学歴人口(大学・大学院)の読込
edu_back<-
  read.csv("FEI_CITY_221121140604.csv",
             sep=",", header=TRUE, skip=1, 
             fileEncoding="CP932")

#データの中身
edu_back 
  • 扱いやすいように変数名(列名)変更.
    • 変更する列:3列名(地域.コード),6列目(E9101_最終学歴人口.卒業者総数..人.),7列目(E9106_最終学歴人口.大学.大学院..人.).
#変数名(列名)の変更
edu_back %>%
  rename(city_code=3,
         graduate=6,
         univ_graduate=7) ->
  edu_back

大学・大学院卒以上割合計算

  • 大学・大学院卒以上割合(univ_ratio)の列を加える.
edu_back %>%
  mutate(univ_ratio=(univ_graduate/graduate)*100) ->
  edu_back

利用しない市区町村の削除

  • 東京都の離島の市町村を削除  - 大島町,利島村,新島村,神津島村、三宅村、御蔵島村、八丈町、青ヶ島村)、小笠原村を選抜. 
    • 離島の市町村を1,離島ではない市(区)町村を0とする二値(ダミー)変数を作成.
    • if_else()を使用してダミー変数を作成する.
      • if_else():第1引数に条件,第2引数に条件を満たす場合の値,第3引数に条件を満たさない場合の値を示す.
#if_else()利用を利用してダミー変数を作成する方法

if_else(条件式, 1, 0)

政令指定都市(さいたま市,千葉市,横浜市,川崎市,相模原市)は区レベルで表現したいため,取り除きたい.

  • filter()を用いてデータ(edu_back)の一部を選抜.filter()内に利用するデータの条件を指示.!=は否定等号(左辺が右辺と等しくない).すなわち,政令指定都市,離島の市町村ではない市区町村を利用するという条件.
#離島市町村ダミーを作成
edu_back %>%
  mutate(island=
           ifelse(city_code>=13361 & city_code<=13421, 
                  1, 0)) ->
  edu_back

#離島市町村と政令都市を除いたデータの選抜
edu_back %>% 
  filter(city_code!=11100 & city_code!=12100 &
           city_code!=14100 & city_code!=14130 &
           city_code!=14150 & island!=1)->
  edu_back2

3 地図上への可視化

境界データのダウンロード

大学・大学院卒割合は現在の市区町村単位で計算しているため,行政区域は最新のファイルをダウンロード.

  • 国土数値情報ダウンロードサービス > 行政区域(ポリゴン) > 埼玉県,千葉県,東京都,神奈川県 > 令和4年
    • ダウンロードしたZIPファイルは同じフォルダー(ディレクトリ)に納め,ZIPファイルを選択 > 右クリック > すべて展開 > 展開先の選択とファイルの選択 > 展開を実行する.展開後は最初にダウンロードしたZIPファイルを削除.  - read_sf():シェープファイル読込.
  • rbind():1都3県を一つのファイルに縦方向に合併.Greater_Tokyoと名付ける.
#1都3県合併の行政区域のシェープファイルの読込
Saitama_map<-
  read_sf("N03-20220101_11_GML/N03-22_11_220101.shp")

Chiba_map<-
  read_sf("N03-20220101_12_GML/N03-22_12_220101.shp")

Tokyo_map<-
  read_sf("N03-20220101_13_GML/N03-22_13_220101.shp")

Kanagagawa_map<-
  read_sf("N03-20220101_14_GML/N03-22_14_220101.shp")

#1都3県合併
Greater_Tokyo <-
  rbind(Saitama_map, Chiba_map, 
        Tokyo_map, Kanagagawa_map)

統計データedu_backとシェープファイルの合併のための準備.

#変数名の変更
Greater_Tokyo %>%
  rename(city_code=N03_007) ->
  Greater_Tokyo

#離島の市町村ダミーの作成
Greater_Tokyo %>%
  mutate(island=
           ifelse(city_code>=13361 & city_code<=13421, 
                  1, 0)) ->
  Greater_Tokyo

#離島の市町村を除いたシェープファイルの作成
Greater_Tokyo %>% 
  subset(island!=1)->
  Greater_Tokyo2

#可視化
ggplot()+
  geom_sf(data=Greater_Tokyo2)

4 大学・大学院卒業者割合の可視化 

地図上に可視化.

  • シェープファイル形式の地図データ(Greater_Tokyo2)と卒業者割合を格納した統計データ(edu_back2)をcity_codeで結合(left_join)し,改めてGreater_Tokyo2と名付ける.
edu_back2 %>% 
  mutate(city_code=as.character(city_code)) ->
  edu_back2

#地図データ(シェープファイル)と統計データとの合併
Greater_Tokyo2<-
  left_join(Greater_Tokyo2, edu_back2, by=c("city_code"))

可視化

ggplot()+
  geom_sf(data=Greater_Tokyo2, aes(fill=univ_ratio),
          color="white")+
  scale_fill_viridis_c(option="G", direction=-1)+
  labs(fill="%", x="", y="",
  caption="出典:国土交通省国土数値情報,総務省都道府県・市区町村のすがた(社会・人口統計体系)")+
  ggtitle("1都3県大学・大学院卒割合(2010年度)")+
  theme_bw()+
  theme(plot.caption=element_text(hjust=0))

Rによる地理空間データの可視化