library(tidyverse)
library(estatapi)
モチベーション
- 学校外教育の参加率にについて、政府統計などを用いて示したい
パッケージ読み込み
準備
- あらかじめE-Stat APIの申請を行い、アプリケーションIDを取得しておく必要がある
.Renviron
や.Rprofile
あたりで、環境変数ESTAT_APPID
にアプリケーションIDを設定しておくと便利
# E-Stat APIのアプリケーションIDを環境変数から取得
<- Sys.getenv('ESTAT_APPID') appid
メタデータ取得
使用するデータは以下の3つ
- 文部科学省「子供の学習費調査」3 学年(年齢)別,所在市町村の人口規模(学科)別の学習費支出状況 小学校 https://www.e-stat.go.jp/stat-search/database?statdisp_id=0003368820
- 文部科学省「子供の学習費調査」3 学年(年齢)別,所在市町村の人口規模(学科)別の学習費支出状況 中学校 https://e-stat.go.jp/stat-search/database?statdisp_id=0003368821
- 文部科学省「子供の学習費調査」3 学年(年齢)別,所在市町村の人口規模(学科)別の学習費支出状況 高等学校(全日制) https://e-stat.go.jp/stat-search/database?statdisp_id=0003368822
# 以下のコードでメタデータが取得できる
estat_getMetaInfo(appid, '0003368820')
estat_getMetaInfo(appid, '0003368821')
estat_getMetaInfo(appid, '0003368822')
データ取得
- メタデータを参照しつつ必要な情報のみを取得
<-
elementary estat_getStatsData(
appid, '0003368820',
cdTab = '110',
cdCat01 = '160,170,180,190,200,210',
cdCat02 = '320'
)
<-
jhigh estat_getStatsData(
appid, '0003368821',
cdTab = '110',
cdCat01 = '160,170,180',
cdCat02 = '320'
)
<-
high estat_getStatsData(
appid, '0003368822',
cdTab = '110',
cdCat01 = '160,170,180',
cdCat02 = '320'
)
データ整形
<-
df bind_rows(
= elementary,
小学校 = jhigh,
中学校 = high,
高校 .id = '学校段階'
|>
) select(学校段階, 学年 = `学年(年齢)・所在市町村人口規模(学科)`, 公私立 = 公私立区分, 年度 = `時間軸(年度次)`, 塾利用率 = value) |>
mutate(
= parse_number(年度),
年度 = fct_relevel(学校段階, '小学校', '中学校', '高校'),
学校段階 = fct_relevel(公私立, '公立', '私立'),
公私立 = fct_relevel(学年, '第1学年', '第2学年', '第3学年', '第4学年', '第5学年', '第6学年')
学年 )
プロット
|>
df ggplot(aes(学年, 塾利用率, fill = 公私立))+
geom_col(position = position_dodge(), color = 'black')+
geom_text(aes(label = 塾利用率), position = position_dodge(width = 0.9), vjust = 1.5)+
facet_grid(rows = vars(学校段階), cols = vars(年度))+
labs(y = '塾利用率(%)')+
theme_bw(base_family = 'Noto Sans JP')+
theme(legend.position = 'bottom')