今回は社会生活基本調査のデータを分析しようと思います。
e-Stat 政府統計の総合窓口からデータを取得します。「ファイル」をクリックしてみます。
社会生活基本調査は、統計法に基づく基幹統計調査として、生活時間の配分や、余暇時間における主な活動(学習・自己啓発・訓練、ボランティア活動、スポーツ、趣味・娯楽及び旅行・行楽)を調査し、国民の社会生活の実態を明らかにするための基礎資料を得ることを目的として5年ごとに実施しています。とのことです。
この図の表番号1のエクセルをダウンロードしてみました。
こういうファイルでした。これをそのままR言語に読み取るのは大変なので、読み取り安いように加工します。
これをread.csv関数で読込み、str関数で構造を見てみましょう。
データは、45の観測、16の変数です。 n = 45, p = 16 ですね。SexとAgeがファクタで、その他は数値データです。summary関数で基本統計量を算出します。
このような結果が表示されます。ひとつひとつ確認していきます。
そのまえに、attach(df)とコマンド入力して、わざわざdf$Sexとしないで、Sexだけで呼び出せるようにします。
Sexは文字通り性別で、男が15、女が15、男女合計が15です。
Ageは年齢ですね。1014yというのは10歳から14歳という意味です。15歳から19歳、20歳から24歳と5歳ずつ増えていて、最後は7599yとなっているのは75歳以上です。それと男女合計の合計がBoth_total, 男の合計がMale_total、女の合計がFemail_totalです。
Both_total, Male_total, Femail_totalのデータは削除してしまいましょう。あ、それとSexのBothも削除してしまいましょう。
これで、男女別、年齢別の純粋なデータフレームになったはずです。
確認してみましょう。まず、detach関数でdfを初期設定のデータフレームから解除し、attach関数でdfnewを初期設定のデータフレームにします。
それでは、summary関数で確認します。
SexのBothが0になりました。AgeのBoth_total, Female_total, Male_totalも0です。
droplevels関数で不要なファクタ水準を削除しましょう。
はい。これで不要なファクタ水準もなくなりました。
改めて、summary(dfnew)を実行してみましょう。
はい、こんな感じです。
今回は以上です。
次回は
です。
以下は今回のR言語のコマンドです。
# データファイルの読込み
df <- read.csv("shakaiseikatsukihon.csv")
# データ構造の確認
str(df)
# summary関数で基本統計量
summary(df)
# dfを初期設定のデータフレームにする
attach(df)
# Sex
summary(Sex)
# Age
summary(Age)
# SexのBothを削除
dfnew <- df[df$Sex != "Both", ]
# AgeのBoth_total, Male_total, Female_totalを削除
dfnew <- dfnew[dfnew$Age != "Both_total" &
dfnew$Age != "Male_total" & dfnew$Age != "Female_total", ]
# dfを初期設定のデータフレームから解除する
detach(df)
# dfnewを初期設定のデータフレームにする
attach(dfnew)
# Sex
summary(Sex)
# Age
summary(Age)
# droplevelsで不要なファクタ水準を削除
dfnew$Sex <- droplevels(dfnew$Sex)
dfnew$Age <- droplevels(dfnew$Age)
# tableで確認
table(dfnew$Sex)
table(dfnew$Age)
# summary
summary(dfnew)