
の続きです。前回はCSVファイルのデータをRに読み込ませました。そうしたら、単身世帯の割合のデータが、電子レンジ所有数量のデータと調査年が重なっていないことが判明しました。今回はこの問題に対処しようと思います。
まず、単身世帯の割合の調査年と電子レンジ所有数量の調査年を確認しましょう。

単身世帯の割合は1980年から5年ごとに2020年までです。

電子レンジ所有数量の調査年は1979年から2014年までの5年ごとです。
単身世帯の1980年のデータを1979年にあてはめ、1985年のデータを1984年にあてはめ、ということで対応します。
まず、単身世帯、調査年、都道府県だけのデータフレームを用意します。

次にyearを2020年度は2019年度に、2015年度は2014年度にと1年ずらします。

parse_number()でyearを数字だけにして、year - 1 で1年ずらして、str_c()で「年度」をくっつけています。
これを、dfに結合させます。

inner_join()を使いました。これで、single: 単身世帯の割合がデータとして使えるようになりました。
次は、income17, income23, income27の3つを平均値にしたincomeを作ります。

rowMeans()関数でincome17, income23, income27の平均値を作成しました。NAが235個ありますね。conveもNAがあります。NAを除外すると、調査年が残るかどうか確認します。

2004年度と2014年度が残りますね。分析するには、2つの調査年があれば、私はいいので、この2004年度と2014年度だけにします。

これでようやく分析の前準備のデータフレームの整備が終わりました。
今回は以上です。
次回は、
です。
はじめから読むには、
です。
今回のコードは以下になります。
#
# 単身世帯の割合の調査年
df_raw |>
filter(!is.na(single)) |>
group_by(year) |>
summarize(n = n())
#
# 電子レンジ所有数量の調査年
df_raw |>
filter(!is.na(microwave)) |>
group_by(year) |>
summarize(n = n(),
mean = mean(microwave))
#
# 単身世帯、調査年、都道府県だけのデータフレーム
df_single <- df_raw |>
filter(!is.na(single)) |>
select(year, pref, single)
df_single
#
# yearを一年ずらす
df_single <- df_single |>
mutate(year = parse_number(year)) |>
mutate(year = year - 1) |>
mutate(year = str_c(year, "年度"))
#
# うまくいったか確認
df_single |>
group_by(year) |>
summarize(n = n(),
mean = mean(single))
#
# df_singleをdfに結合
df <- df |>
select(-single) |> # 既存のsingleを削除
inner_join(df_single, join_by(year, pref))
summary(df)
#
# income17, 23, 27の平均値を作る
df$income <- rowMeans(df[ , c("income17", "income23", "income27")],
na.rm = TRUE)
df <- df |>
select(-income17, -income23, -income27)
summary(df)
#
# NAを除外したら
na.omit(df) |>
count(year)
#
# dfからNAの行を削除
df <- na.omit(df)
summary(df)
#
(冒頭の画像は、Bing Image Creatorで生成しました。プロンプトは、Landscape photograph of wide green grass field and brown sand desert. There is a close up of red cactus flowers under the clear blue sky.です。)