
今回からしばらくは、都道府県別の商業動態統計調査のデータを分析してみたいと思います。


上の図の四角で囲ったデータを使いました。
例えば、百貨店・スーパーならば、下の図のように、販売金額ではなくて増減率のデータだけにしました。

Excelにダウンロードすると、こんな感じです。

このようなCSVファイルのデータをRで分析してみます。まずは、tidyverseパッケージの読み込みをします。

read_csv()関数でCSVファイルのデータを読み込みます。



このように、百貨店・スーパー、コンビニエンスストア、大型家電販売店、ドラッグストア、ホームセンターと5つのCSVファイルを読み込みました。
それぞれのデータフレームのサマリーをsummary()関数でみてみます。


百貨店・スーパーのデータフレームは、販売額のyoy(前年比)だけですが、その他のデータフレームは、販売額のyoyの他に、店舗数のyoyもあることがわかります。データの年度は2021年度、2022年度、2023年度の3年間ですね。
とりあえず、この5つのデータフレームを一つにまとめてみます。bind_rows()関数を使います。

どのデータフレームからのデータかわかるように、shopという名前の変数を作りました。
yoyにNAがありますので、これは、0に置換してしまいます。それと、typeのデータで、「販売額」と「販売額等」と似たものがあるので、これを「販売額」に統一します。

typeの「販売額等」のファクターレベルをなくしてしまいます。

原始的に、as.character()関数で一度、文字列型に戻してから再度、as.factor()関数でファクター型にしました。とりあえずこれで、分析のための下準備はできましたね。
今回は以上です。
次回は、
です。
今回のコードは以下になります。
#
# tidyverseパッケージの読み込み
library(tidyverse)
#
# データの読み込み
# 百貨店・スーパーのデータ
df_super_depart <- read_csv("super_and_depart.csv",
skip = 3) |>
mutate(across(where(is.character), as.factor))
glimpse(head(df_super_depart))
#
# コンビニエンスストアのデータ
df_convenience <- read_csv("convenience_store.csv",
skip = 3) |>
mutate(across(where(is.character), as.factor))
glimpse(head(df_convenience))
#
# 大型家電販売店のデータ
df_kaden <- read_csv("kaden.csv",
skip = 3) |>
mutate(across(where(is.character), as.factor))
glimpse(head(df_kaden))
#
# ドラッグストアのデータ
df_drugstore <- read_csv("drugstore.csv",
skip = 3) |>
mutate(across(where(is.character), as.factor))
glimpse(head(df_drugstore))
#
# ホームセンターのデータ
df_homecenter <- read_csv("homecenter.csv",
skip = 3) |>
mutate(across(where(is.character), as.factor))
glimpse(head(df_homecenter))
#
# 百貨店・スーパーのデータフレーム
summary(df_super_depart)
#
# コンビニエンスストアのデータフレーム
summary(df_convenience)
#
# 大型家電販売店のデータフレーム
summary(df_kaden)
#
# ドラッグストアのデータフレーム
summary(df_drugstore)
#
# ホームセンターのデータフレーム
summary(df_homecenter)
#
# すべてのデータを統合
df <- df_super_depart |>
mutate(type = "販売額等",
shop = "super_and_depart") |>
bind_rows(df_convenience |>
mutate(shop = "convinience")) |>
bind_rows(df_kaden |>
mutate(shop = "kaden")) |>
bind_rows(df_drugstore |>
mutate(shop = "drugstore")) |>
bind_rows(df_homecenter |>
mutate(shop = "homecenter")) |>
mutate(type = as.factor(type),
shop = as.factor(shop))
summary(df)
#
# yoyのNAを0にする
df[is.na(df$yoy), "yoy"] <- 0
#
# typeの販売額等を販売額にする
df[df$type == "販売額等", "type"] <- "販売額"
#
# 再度dfのサマリー
summary(df)
#
# typeのlevelを再設定
df <- df |>
mutate(type = as.character(type)) |>
mutate(type = as.factor(type))
#
# 再度dfのサマリー
summary(df)
#
今回のCSVファイルは以下のGitHubにあります。
https://github.com/sato-nobu/CSV_files/blob/main/super_and_depart.csv
https://github.com/sato-nobu/CSV_files/blob/main/convenience_store.csv
https://github.com/sato-nobu/CSV_files/blob/main/kaden.csv
https://github.com/sato-nobu/CSV_files/blob/main/drugstore.csv
https://github.com/sato-nobu/CSV_files/blob/main/homecenter.csv
(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは、Landscape of natural Japanese local forests, close up of NADESHIKO flowers, photo です。)