crosshyou

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

地域ブロック別の栄養素等摂取量のデータの分析1 - R言語でデータを取り込む。gather関数やseparate関数でデータフレームを整理整頓する。

今回は国民栄養・健康調査のデータを分析してみます。

政府統計の総合窓口(www.e-stat.go.jp)からデータを取得します。

f:id:cross_hyou:20201231105728p:plain

f:id:cross_hyou:20201231110014p:plain

たくさんデータベースがありましたが、今回は栄養素等摂取量 - エネルギー・栄養素等、地域ブロック別、平均値、標準偏差、中央値 - 総数、1歳以上

というデータを取得します。

f:id:cross_hyou:20201231110905p:plain

このようなExcelファイルでした。これをR言語で読み込みます。

まず、tidyverseパッケージの読み込みです。

f:id:cross_hyou:20201231111120p:plain

read_csv関数で読み込みます。

f:id:cross_hyou:20201231111513p:plain

locale = のところでファイルのエンコードはUTF-8だと教えています。

skip = 11のところで12行目から読み込んでねと教えています。

na = のところで***や.や-はNAですよと教えています。

col_names = のところでコラム名は無いですよと教えています。

str関数でデータが読み込まれたかどうか見てみます。

f:id:cross_hyou:20201231111850p:plain

問題なく読み込まれています。

このraw_datを分析しやすいように整理整頓しないといけないです。

どうしましょうか?

とりあえず、1行目と2行目をpaste関数で結合してみましょう。

f:id:cross_hyou:20201231114001p:plain

raw_data[1, ]のままではtibbleのオブジェクトなのでas.matrix関数でマトリックスのオブジェクトにして、さらにas.vector関数でベクトルのオブジェクトにしてからpaste関数でくっつけました。1番目の時間軸(年次)と2番目の栄養素等を少し変えます。

f:id:cross_hyou:20201231114435p:plain

このcolumn_kouhoをコラム名にします。

f:id:cross_hyou:20201231114640p:plain

str関数で確認します。

f:id:cross_hyou:20201231114816p:plain

コラム名がかわりました。1行目と2行目を削除します。

f:id:cross_hyou:20201231114958p:plain

str関数で確認してみます。

f:id:cross_hyou:20201231115217p:plain

これをgather関数で全国 実数や全国 平均値をkeyにしてデータフレームの形を横長から縦長に変えます。

f:id:cross_hyou:20201231115917p:plain

datを表示してみます。

f:id:cross_hyou:20201231120032p:plain

だいぶいいところまで来ました。

データタイプの全国 実数となっているところを、全国というコラムと実数というコラムに分割します。separate関数です。

f:id:cross_hyou:20201231120734p:plain

うまくできたかどうか見てみます。

f:id:cross_hyou:20201231120903p:plain

うまくできました。

year, region, typeをファクター型に、valueを数値型にします。

f:id:cross_hyou:20201231121315p:plain

summary関数でみてみます。

f:id:cross_hyou:20201231121523p:plain

valueにNAがあります。これらは削除してしまいます。

f:id:cross_hyou:20201231121656p:plain

もういちどsummary関数で見てみます。

f:id:cross_hyou:20201231121830p:plain

これでデータフレームが整理整頓できました。

今回は以上です。

 次回は

 

www.crosshyou.info

 です。