Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

UCI Machine Learning RepositoryのBlood Transfusion Service Centerのデータの分析1 - Rにテキストファイルのデータを取り込む

今回からしばらくは、UCI Machine Learning RepositoryにあるBlood Transfusion Service Centerのデータを使って、分類(Classification)をしてみようと思います。

Yeh, I. (2008). Blood Transfusion Service Center [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C5GS39.

台湾の献血センターの献血者のデータです。

データファイルは、こんな感じのものです。

いつものExcel-CSVファイルではなくて、メモ帳のテキストファイルでした。

変数は、左から順に

Recency(months) : 直近の献血から何か月経過しているか
Frequency(times) : 合計献血回数
Monetary(c.c. blood) : 合計献血量(c. c.)
Time(months) : 初回の献血から何か月経過しているか
この4つが説明変数です。

一番右が
Donated_Blood : 2007年3月に献血をしたら1、そうでないなら0
で、これが被説明変数です。

それでは、Rで分析を開始します。

まず、tidyverseパッケージを読み込みます。

メモ帳のテキストファイルを読み込むには、read_delim()関数を使います。

, でデータを区切ってあるので、delim = "," としています。

skip = 1 として1行目を読み込まないようにしています。

col_names = FALSE として、変数名が読み込むデータには無いことを指示しています。

glimpse()関数で読み込んだデータを確認します。

X1とX4が数値型でなくて、文字列型として読み込まれていますね。parse_number()関数で数値型に変換します。

rename()関数で変数名を直します。

summary()関数で各変数の基本統計量をみます。

NAの無いデータフレームです。

Donated_Bloodの平均値を見ると、0.238です。つまり、23.8%の人が2007年3月に献血をしているということですね。Frequencyの平均値は5.5回ですが、50回もしているという人もいますね。

今回は以上です。

次回は

www.crosshyou.info

です。

 

今回のコードは以下になります。

#
# tidyverseパッケージを読み込む
library(tidyverse)
#
# メモ帳のテキストファイルを読み込む
df_raw <- read_delim("transfusion.txt",
                     delim = ",",
                     skip = 1,
                     col_names = FALSE)
#
# 読み込んだデータの確認
glimpse(df_raw)
#
# X1とX4を数値型に変換する
df <- df_raw |> 
  mutate(
    X1 = parse_number(X1),
    X4 = parse_number(X4)
  )
glimpse(df)
#
# 変数名を直す
df <- df |> 
  rename(Recency = X1,
         Frequency = X2,
         Monetary = X3,
         Time = X4,
         Donated_Blood = X5)
df
#
# 各変数の統計サマリー
summary(df)
#

 

(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは、very beautiful landscape of seashore, closeup of strange form flowers, nobody is there, photo です。)