層別の記述統計
あるテストを実施したとき,クラスごとに合計得点をもとめたいとか,そういうことって外国語教育ではよくある(そういうことしかない気もする)。
男女とか,3クラスとかだったらね,記述統計をエクセルでそれぞれ手動でもとめてもいいかもだけど,20クラスとか100クラスとかあったらそれは大変だ(そんな大変でもないのだけど)。
Rでやろう。当たり前なんだけど,Rを使い始めのひとは,こういうところにつまずいちゃうのよね。
基本中の基本なんだけど,tapply関数ね。これ使えばだいたいいい感じ。
フィッシャーのあやめを題材にしよう。
フィッシャーのあやめっていうのは,3種類の品種のあやめ(setosaとvirginicaとあとなんか長い名前のひとつ)につき,ガクの長さと幅,花弁の長さと幅っていう4変数がある。
Rだと,
iris
ってやるとデータが入っているので見える。
ここで,品種ごとに,そうだな,ガクの長さの記述統計をそれぞれ知りたいってことにしよう。
こういうときは,
tapply(iris[,1],iris[,5],summary)
てやればいい。iris[,5]は品種の名前(カテゴリカル)。iris[,1]はガクの長さが入っているのね。
ガクの幅だったら,
tapply(iris[,2],iris[,5],summary)
みたいな。
基本は,tapply(適用したいベクトル,層別にしたいベクトル,適用したい関数)
ってことね。
これで例えば100クラスとかあっても大丈夫。