crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

都道府県別の健康寿命のデータの分析1 - R言語でデータを読み込む。2016年度の熊本県のデータが欠損している。

今回は都道府県別の健康寿命のデータについて調べてみようと思います。

データはいつものように、政府統計の総合窓口e-statから取得します。

データ表示 | 都道府県データ | 社会・人口統計体系 | 地域から探す | 政府統計の総合窓口 (e-stat.go.jp)

f:id:cross_hyou:20210220170648p:plain

地域は47度道府県を選択しました。

f:id:cross_hyou:20210220170806p:plain

データは健康寿命の他に、総人口、県内総生産額、医師数、歯科医師数、薬剤師数、看護指数を選択しました。

f:id:cross_hyou:20210220171007p:plain

こういうCSVファイルです。9行目に変数名を挿入しています。

year: 調査年度

pref: 都道府県名

pop: 総人口(人)

gdp: 県内総生産額(百万円)

male: 男性の健康寿命

female: 女性の健康寿命

doctor: 医師数(人)

dental: 歯科医師数(人)

pharm: 薬剤師数(人)

nurse: 看護師数(人)

です。

このファイルをR言語で読み込みます。

まず、tidyverseパッケージを読み込んで、read_csv関数を使います。

f:id:cross_hyou:20210220172057p:plain

read_csv関数でCSVファイルのデータを読み込みます。

f:id:cross_hyou:20210220172406p:plain

まず、読み込みたいファイル名を指定して、skip = 8 で8行はスキップして9行目から読み込みます。na = c("***", "-", "X") で***, -, X はNAとして読み込みます。

locale = locale(encoding = "UTF-8")でエンコードをUTF-8だと指定しています。

健康寿命がNAの行はいらないので、filter関数でフィルターします。

f:id:cross_hyou:20210220173000p:plain

summary関数でdf2を確認します。

f:id:cross_hyou:20210220173239p:plain

maleは最小値が68.95で最大値が73.21で平均値が71.22です。

femaleは最小値が72.37で最大値が76.32で平均値が74.35です。

nrow関数でdf2の行数を確認しておきましょう。

f:id:cross_hyou:20210220173703p:plain

140行ということは3年分のデータでしょうかね。47 * 3 = 141 なので1つだけデータが無かった都道府県がありますね。どこでしょうか?

f:id:cross_hyou:20210220174005p:plain

group_by関数で都道府県ごとにグループ化して、summarise関数とn関数でデータの数を数えます。arrange関数でデータの数の少ない順に並び替えて、head関数ではじめの6行だけ表示しています。

熊本県がデータ数が2です。1年データがなかった年があったということですね。

どの年が無かったのかも確認しておきます。

f:id:cross_hyou:20210220174349p:plain

2016年度が46個のデータです。2016年度の熊本県のデータが無いということですね。

今回は以上です。