crosshyou

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

washdata.orgのデータ分析5 - basic(30分以内に飲み水が手に入る)の比率が一番上昇したのはどこの国か?

 

www.crosshyou.info

 の続きです。

今回は2000年から2017年の間で、basicの比率が一番上昇したのはどこの国かを調べてみます。

コードは以下のようになります。

データフレームの操作

始めにnames(df)[1] <- "country"で変数名をcountryに直しておきます。

次にdf %>% filter(year %in% c(2000, 2017)でyearが2000と2017の行だけに絞り込みます。

select(country, year, basic)で列をcountry, year, basicだけに絞り込みます。

na.omit()でNAのある行を削除します。

ここまでで、データフレームがどういう状態になっているかというと、

データフレーム

このような状態になっています。

これを、

spread(key = year, value = basic)としてyearの値を列名に、basicの値をその値にします。

データフレーム

こういうふうになります。

そして、再び na.omit()でNAの行を削除します。

setNames(c("country", "Y2000", "Y2017"))で変数名を再設定して、

mutate(change = Y2017 -Y2000)で2017年の値から2000年の値を差し引いてどれだけbasicが変化したかを計算します。

arrange(desc(change))でchangeの値の大きい順にならべて、

head()ではじめの6行を表示します。

その結果が、

basicの上昇上位国

これです。アフガニスタンが一番改善しました。2000年は27.8%だったのが2017年は67.1%です。

basicは飲み水が30分以内に手に入る、ということです。

それでは、その反対にbasicがあんまり改善していない、または悪化しているところはどこでしょうか?

コードの最後をarrange(change) %>% head()にすればいいですね。

spread関数

ソロモン諸島は2000年は78.7%だったのが、2017年は67.8%と10ポイント以上悪化していることがわかります。

今回は以上です。