層別(グループ化)

使用するパッケージ(パッケージのインストール

library(dplyr)
library(psych)

データセット soubetu をdatに格納します(ファイルの読み込み

head(dat)

以下のように層別したカテゴリー変数(名義変数)を追加

\(65 \leq age < 70= 65以上70未満\)
\(70 \leq age < 75 = 70以上75未満\)
\(75 \leq age \leq 80= 75以上\)

パケージを使用しない層別

age_c という変数を追加して、層別したカテゴリー変数(名義変数)にします

dat$age_c <- 
    ifelse(dat$age < 70, "65以上70未満",
    ifelse(dat$age < 75, "70以上75未満", "75以上")
)

head(dat)

各グループの箱ひげ図を作図

boxplot(
    data ~ age_c,
    xlab = "年齢別",
    dat)

65以上70未満のdataと70以上75未満のdataをt検定

t.test(
    dat[dat$age_c=="65以上70未満", "data"], 
    dat[dat$age_c=="70以上75未満", "data"]
)

パッケージ dplyr を使用して、age_c2という変数(名義変数)を追加します

\(65 \leq age < 70= A\)
\(70 \leq age < 75 = B\)
\(75 \leq age \leq 80= C\)

dat <- dplyr::mutate(
    dat,
    age_c2 = 
        if_else(dat$age >= 65 & dat$age < 70, "A", 
        if_else(dat$age > 70 & dat$age <= 75, "B", "C"
    ))
)

head(dat)

パッケージ psych の関数 describeBy を使用して、age_cで層別したデータの要約

set <- psych::describeBy(dat$data, dat$age_c)
print(set)

サンプルサイズ、平均、不偏標準偏差のみの表示

set <- psych::describeBy(dat$data, dat$age_c)
lapply(
    set,
    "[",
    c("n", "mean", "sd")
) 

73歳以上78歳以下の平均値を求めたい場合

mean(dat[dat$age>=73 & dat$age<=78, "data"])

datから73歳以上78歳以下のデータセットdat2を改めて作成する場合(&を使用)

dat2 <- subset(dat, dat$age>=73 & dat$age<=78)
print(dat2)

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください

タイトルとURLをコピーしました