Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

都道府県別の食料自給率のデータ分析2 - R言語のlapply関数, tapply関数、for関数を使って効率よく分析をする。

 

www.crosshyou.info

 の続きです。

まず、年度が何年と何年だったか確認します。

f:id:cross_hyou:20200510091941j:plain

2010年度と2015年度の2か年でした。

この2か年の平均値を都道府県ごとに作成してみましょう。一つ一つの変数に対して、tapply関数で処理するのではなく、tapply関数の処理をlapply関数でいっぺんにやってしまいます。

f:id:cross_hyou:20200510092201j:plain

この1行で実行できます。

sort(tapply(x, df$Pref, mean))という処理をfunction関数で定義して、それをlapply関数でデータフレームの3行目からいっぺんに実行します。

結果はこちら。

f:id:cross_hyou:20200510092405j:plain

人口は上のようになります。鳥取県、島根県、高知県が人口が少なく、東京都、神奈川県、大阪府が多いです。

 

f:id:cross_hyou:20200510092536j:plain

昼夜間人口比率は上のようになります。埼玉県、千葉県、奈良県は昼間の人口が夜の人口よりもかなり低いですね。東京や大阪に通勤しているのでしょうね。東京都、大阪府、京都府が昼夜間比率上位です。以外だったのが北海道、昼間の人口のほうが少ないです。

 

f:id:cross_hyou:20200510092834j:plain

面積は上のとおりです。香川県、大阪府、東京都が小さい面積、北海道、岩手県、福島県が大きい面積の都道府県です。

 

f:id:cross_hyou:20200510093025j:plain

年間平均気温は上のとおりです。北海道、岩手県、青森県が低く、沖縄県、鹿児島県、宮崎県が高いです。

 

f:id:cross_hyou:20200510093208j:plain

課税所得は上のようになりました。鳥取県、高知県、島根県が少なく、東京都、神奈川県、愛知県が多いです。

 

f:id:cross_hyou:20200510093325j:plain

食料自給率(カロリーベース)は上のようになります。神奈川県、大阪府、東京都は0.0%です。北海道、秋田県、山形県が高いです。

 

lapply関数とtapply関数をつかって、2010年と2015年の都道府県ごとの平均値のデータフレームを作ります。

f:id:cross_hyou:20200510093553j:plain

1行目でtapply関数とlapply関数で都道府県ごとの平均値のリストを作り、

2行目でリストをデータフレームに転換しています。

3行目で都道府県の変数を追加しています。

4行目でデータフレームの行名を削除しています。

5行目でデータフレームの始めの6行を表示しています。

 

boxplot関数とscale関数をつかって、各変数の箱ひげ図を描きます。

f:id:cross_hyou:20200510093907j:plain

f:id:cross_hyou:20200510093953j:plain

各変数の数値のレンジが違うので、scale関数で標準化してからboxplot関数で箱ひげ図にしました。一番、値がとびぬけているのは、Areaの外れ値、つまり北海道の面積です。

 

for関数とhist関数を使って、各変数のヒストグラムを描きます。

f:id:cross_hyou:20200510094324j:plain

f:id:cross_hyou:20200510094333j:plain

どの変数も正規分布の形状ではないですね。

 

同じようにして、小さい順に並び替えたグラフも描きます。

f:id:cross_hyou:20200510094625j:plain

f:id:cross_hyou:20200510094636j:plain

 

同じようにして、Q-Q plotも描きましょう。qqnorm関数とqqline関数を使います。

f:id:cross_hyou:20200510095121j:plain

f:id:cross_hyou:20200510095133j:plain

 

各変数の散布図マトリックスを描きます。pairs関数を使いました。

f:id:cross_hyou:20200510095251j:plain

f:id:cross_hyou:20200510095304j:plain

あまり相関はなさそうです。

 

cor関数で相関係数マトリックスを描きます。

f:id:cross_hyou:20200510095425j:plain

PopuとIncomeの相関係数が0.980で一番たかいですね。Calとの相関係数に注目すると、Area, DayNigh, Popu, Income, Tempの順番で相関係数が1から-1に近くなっています。

 

変動係数(CV)を計算します。変動係数は、標準偏差 / 平均値です。sd(x) / mean(x)という関数をfunction(x)で定義して、sapply関数で処理しました。

f:id:cross_hyou:20200510095845j:plain

変動係数の高い順に並べると、Area, Income, Popu, Cal, Temp, DayNightになります。

今回は以上です。