【R】都道府県別 教育部門職員数
2020年5月25日
教育は、社会において最も重要なもののひとつです。各都道府県でどれだけの職員の方が働いているか調べてみます。総務省統計局が発表している「都道府県・市区町村のすがた(社会・人口統計体系)」から、都道府県別の教育部門職員数と人口1,000人当たりの職員数を示してみたいと思います。2018年のデータです。
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
絶対数でみると主要都市圏が多いですが、人口1000人当たりに直すと地方の方が充実しているようです。これは、主要都市圏の方が効率よく仕事をしているからか、もしくは、人出不足かどちらでしょう?
R
のコードは次の通りです。
library(leaflet) library(knitr) library(kableExtra) library(dplyr) library(tidyr) library(stringr) dat <- read.csv("http://www.dinov.tokyo/Data/JP_Pref/Pref_data.csv", header = TRUE, fileEncoding="UTF-8") col_start <- 0.2 col_end <- 0.0 dat$教育部門職員数_人口<-dat$教育部門職員数/dat$総人口*1000 table_df<-data.frame(都道府県=dat$都道府県, 教育部門職員数=dat$教育部門職員数, 教育部門職員数_人口千人=dat$教育部門職員数_人口) datc_k <- cut(dat$教育部門職員数, hist(dat$教育部門職員数, plot=FALSE)$breaks, right=FALSE) datc_kcol <- rainbow(length(levels(datc_k)), start = col_start, end=col_end)[as.integer(datc_k)] datc_m <- cut(dat$教育部門職員数_人口, hist(dat$教育部門職員数_人口, plot=FALSE)$breaks, right=FALSE) datc_mcol <- rainbow(length(levels(datc_m)), start = col_start, end=col_end)[as.integer(datc_m)] library(NipponMap) windowsFonts(JP4=windowsFont("Biz Gothic")) windows(width=1600, height=800) png("0plot1.png", width = 1600, height = 800) par(family="JP4") layout(matrix(1:2, 1, 2)) JapanPrefMap(datc_kcol, main="教育部門職員数") legend("bottomright", fill=rainbow(length(levels(datc_k)), start = col_start, end=col_end), legend=names(table(datc_k))) JapanPrefMap(datc_mcol, main="教育部門職員数_人口千人") legend("bottomright", fill=rainbow(length(levels(datc_m)), start = col_start, end=col_end), legend=names(table(datc_m))) dev.off() library(clipr) t1=kable(table_df[c(1:24),], align = "c", row.names=FALSE) %>% kable_styling(full_width = F) %>% column_spec(1, bold = T) %>% collapse_rows(columns = 1, valign = "middle") t2=kable(table_df[c(25:47),], align = "c", row.names=FALSE) %>% kable_styling(full_width = F) %>% column_spec(1, bold = T) %>% collapse_rows(columns = 1, valign = "middle") paste(c('<table><tr valign="top"><td>', t1, '</td><td>', t2, '</td><tr></table>'), sep = '') %>% write_clip