No.21742 Re: 【R】データの要約 【青木繁伸】 2015/07/24(Fri) 10:43
# テストデータ(そもそも Titanic は "table" なので,それを展開して元データを作る)
# 既に,どこかに誰かが作った元データがあるなら以下は不要
TITANIC <- data.frame(Titanic)
TITANIC <- data.frame(lapply(TITANIC, function(i) rep(i, TITANIC[,"Freq"])))[-5]
# 以下は,表2.の通りになるように変数名等の付け替えをする(不要なら省く)
colnames(TITANIC)[4] <- "Alive"
TITANIC[,1] <- factor(TITANIC[,1], levels=c("1st", "2nd", "3rd", "Crew"), labels=c("1等", "2等", "3等", "乗務員"))
TITANIC[,2] <- factor(TITANIC[,2], levels=c("Female", "Male"), labels=c("男性", "女性"))
TITANIC[,3] <- factor(TITANIC[,3], levels=c("Child", "Adult"), labels=c("子ども", "大人"))
TITANIC[,4] <- factor(TITANIC[,4], levels=c("No", "Yes"), labels=c("死亡", "生還"))
# 表2. の通りに出力するために,面倒なことをやる
result <- data.frame(a=expand.grid(c("死亡", "生還"), c("男性", "女性"), c("子ども", "大人"), c("1等", "2等", "3等", "乗務員"))[,4:1],
b = ftable(TITANIC, row.vars=c(1,3,2,4))[,1,drop=FALSE])
colnames(result) <- c("Class", "Age", "Sex", "Alive", "度数")
print(result[result[,5]>0,], row.names=FALSE)
Class Age Sex Alive 度数
1等 子ども 男性 生還 1
1等 子ども 女性 生還 5
1等 大人 男性 死亡 4
1等 大人 男性 生還 140
1等 大人 女性 死亡 118
1等 大人 女性 生還 57
2等 子ども 男性 生還 13
2等 子ども 女性 生還 11
2等 大人 男性 死亡 13
2等 大人 男性 生還 80
2等 大人 女性 死亡 154
2等 大人 女性 生還 14
3等 子ども 男性 死亡 17
3等 子ども 男性 生還 14
3等 子ども 女性 死亡 35
3等 子ども 女性 生還 13
3等 大人 男性 死亡 89
3等 大人 男性 生還 76
3等 大人 女性 死亡 387
3等 大人 女性 生還 75
乗務員 大人 男性 死亡 3
乗務員 大人 男性 生還 20
乗務員 大人 女性 死亡 670
乗務員 大人 女性 生還 192
# 本来は,ftable だけで同じ情報を持つ結果が出力される
# 表側の順序だけは,row.vars で指定しておく
ftable(TITANIC, row.vars=c(1,3,2,4))
Class Age Sex Alive
1等 子ども 男性 死亡 0
生還 1
女性 死亡 0
生還 5
大人 男性 死亡 4
生還 140
女性 死亡 118
生還 57
2等 子ども 男性 死亡 0
生還 13
女性 死亡 0
生還 11
大人 男性 死亡 13
生還 80
女性 死亡 154
生還 14
3等 子ども 男性 死亡 17
生還 14
女性 死亡 35
生還 13
大人 男性 死亡 89
生還 76
女性 死亡 387
生還 75
乗務員 子ども 男性 死亡 0
生還 0
女性 死亡 0
生還 0
大人 男性 死亡 3
生還 20
女性 死亡 670
生還 192
No.21743 【御礼】 Re: 【R】データの要約 【赤羽】 2015/07/24(Fri) 21:43
青木先生,
赤羽と申します,いつもご教示を頂戴し,誠にありがとうございます。
今回も,丁寧に,詳細に,暖かいご教示を頂戴し,心から御礼を申し上げます。
1行,1行,丁寧にトレースさせていただき,考え方をしっかり勉強させていただきます。
ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 047 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る