Bing Image Creator で生成: Close up of White Hawthorn Blossoms, background is great river and blue sky, photo
の続きです。前回に引き続き、変数を分析しやすいように処理していきます。
X7 からはじめます。X7 は文字列のデータなので、比率を計算します。
v が 58% と一番多いので、v ならば 1, そうでないなら 0 のダミー変数に変換してしまいます。
X8 は数値データですので、A8 に変数名を変えるだけにします。
X9 は TRUE か FALSE のロジカル変数なので、TRUE なら 1, FALSE なら 0 のダミー変数に変換してしまいます。
X10 も同様です。
X11 は元のデータの説明を見ると、数値データなのですが、文字列型として読み込まれています。parse_number() 関数で数値型に変換します。
X12 は TRUE / FALSE の論理型です。これは、1 / 0 のダミー変数に変換してしまいます。
X13 は g や s の文字列ですね。比率を確認します。
g が 90% の比率です。g ならば 1, そうでないなら 0 のダミー変数に変換してしまいます。
X14 は数値型の変数なのですが、文字列型の値で読み込まれています。これも parse_number() 関数で数値型にします。
13 個の観測値が数値に変換できなかったようです。これらは後で除外するので、ここでは気にしません。
X15 は A14に変数名を変えるだけです。
X16 は 私が予測したい変数です。+ と - の比率を確認します。
- が 55.5%, + が44.5% です。+ なら 1, - なら 0 のダミー変数に変換してしまいます。
そして、変数の名前を approved に変更します。
NA の観測値を削除します。na.omit() 関数を使います。
approved を一番左に移動させます。relocate() 関数を使います。
666 個の観測データがあることがわかります。
A2, A3, A8, A11, A14, A15 は 値の範囲が大きいので、すべてを最小値が 0, 最大値が 1 に標準化します。
そのためにまず、自作関数を作ります。
この自作関数で、処理します。
summary() 関数で各変数の最小値、最大値、平均値を確認します。
すべて変数が、最小値は 0, 最大値は 1 になっていることが確認できます。
これで、分析しやすいようにデータフレームを整えることができました。
今回は以上です。
次回は、
です。
初めから読むには、
です。
今回のコードは以下になります。
#
# X7 の比率
df |>
count(X7) |>
mutate(prop = n / sum(n)) |>
arrange(desc(n))
#
# X7 の変換
df <- df |>
rename(A7 = X7) |>
mutate(A7 = if_else(A7 == "v", 1, 0))
glimpse(df)
#
# X8 の変換
df <- df |>
rename(A8 = X8)
glimpse(df)
#
# X9 の変換
df <- df |>
rename(A9 = X9) |>
mutate(A9 = if_else(A9 == TRUE, 1, 0))
glimpse(df)
#
# X10 の変換
df <- df |>
rename(A10 = X10) |>
mutate(A10 = if_else(A10 == TRUE, 1, 0))
glimpse(df)
#
# X11 の変換
df <- df |>
rename(A11 = X11) |>
mutate(A11 = parse_number(A11))
glimpse(df)
#
# X12 の変換
df <- df |>
rename(A12 = X12) |>
mutate(A12 = if_else(A12 == TRUE, 1, 0))
glimpse(df)
#
# X13 の比率
df |>
count(X13) |>
mutate(prop = n / sum(n)) |>
arrange(desc(n))
#
# X13 の変換
df <- df |>
rename(A13 = X13) |>
mutate(A13 = if_else(A13 == "g", 1, 0))
glimpse(df)
#
# X14 の変換
df <- df |>
rename(A14 = X14) |>
mutate(A14 = parse_number(A14))
glimpse(df)
#
# X15 の変換
df <- df |>
rename(A15 = X15)
glimpse(df)
#
# X16 の比率
df |>
count(X16) |>
mutate(prop = n / sum(n)) |>
arrange(desc(n))
#
# X16 の変換
df <- df |>
rename(approved = X16) |>
mutate(approved = if_else(approved == "+", 1, 0))
glimpse(df)
#
# NA 行を削除
df <- na.omit(df)
colSums(is.na(df))
#
# approved を一番左にもってくる
df <- df |>
relocate(approved)
glimpse(df)
#
# min-max法の関数を作る
minmax <- function(x) {
(x - min(x)) / (max(x) - min(x))
}
#
# A2, A3, A8, A11, A14, A15 をminmax()で処理する
df <- df |>
mutate(
A2 = minmax(A2),
A3 = minmax(A3),
A8 = minmax(A8),
A11 = minmax(A11),
A14 = minmax(A14),
A15 = minmax(A15)
)
#
# df のサマリー
summary(df)
#