
今回からしばらくは、UCI Machine Learning Repository の Obesity(肥満)のデータを使ってみたいと思います。
Estimation of Obesity Levels Based On Eating Habits and Physical Condition [Dataset]. (2019). UCI Machine Learning Repository. https://doi.org/10.24432/C5H31Z.

ダウンロードした CSV ファイルは下の画像のようなものでした。

一番右の列の NObeyesdad が肥満タイプで、このカテゴリカル変数を分類する、というものです。
R で分析しますので、tidyverse と tidymodels パッケージを読み込みしておきます。

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

relocate() 関数で、目的変数の NObeyesdad を一番左にもってきました。
glimpse() 関数でデータの様子を確認します。

問題なくデータは読み込まれました。NObeyesdad は 名前をわかりやすく、obesity に、family_history_with_overweight は FHWO と短縮します。これは rename() 関数で実行します。

NA の有無を確認します。sapply(), function(), sum(), is.na() 関数を使いました。

全部の変数で、0ですから、NA はありません。
次に文字列をファクター型にします。mutate(), across(), where(), as.factor() を使います。

summary() 関数でそれぞれの変数のサマリー統計値を確認します。

目的変数の obesity は7つのタイプがだいたい均等に分かれていることがわかります。
今回は以上です。
次回は
です。
今回のコードは以下になります。
#
# tidyverse, tidymodels の読み込み
library(tidyverse)
library(tidymodels)
#
# CSVファイルの読み込み
df_raw <- read_csv("obesity.csv") |>
relocate(NObeyesdad)
#
# データの確認
glimpse(df_raw)
#
# 変数名の変更
df <- df_raw |>
rename(obesity = NObeyesdad,
FHWO = family_history_with_overweight)
#
# NAの有無
sapply(df, function(x) sum(is.na(x)))
#
# 文字列型はファクター型に変換する
df <- df |>
mutate(
across(where(is.character), as.factor)
)
df
#
# データのサマリー
summary(df)
#
(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは This is a beautiful landscape photograph. Under a blue sky, a range of snow-capped mountains stretches into the distance. In the foreground is a meadow, with a close-up of a red sweet pea in bloom. です。)