「t 検定(対応のない場合)」pdf ファイルだけど...
以前にも,「for で処理すると,処理対象の変数名が出ないのがイヤだ」というのに対して,mapply などというつまらないものを勧めたのだけど,今回は,もっとつまらないものを紹介してみよう。
> まとめて一気にやりたいなら,以下のように for を使ってやることもできます。
> でも,やはり変数名が a と表示されてしまうので,間違えてしまいそう...
> for(a in 26:28) {
> print(t.test(xx[,a] ~ xx$性別))
> }
これを,以下のようにします。
# 以下の 3 行は,テストデータ作り
xx ← data.frame(matrix(rnorm(100), 20))
colnames(xx) ← LETTERS[1:5]
xx$性別 ← factor(rep(c("male", "female"), each=10))
# かなりトリッキーに
lapply(colnames(xx)[2:5], function(a) {
eval(parse(text=sprintf(
"t.test(xx$%s ~ xx$性別)"
, a)))})
こうすれば,変数名が出ますが,そこまでしなくても,for ループの中で,cat などで対象変数名を書き出しておくだけで十分でしょう。
for (a in 26:28) {
cat("Variable:", colnames(xx)[a], "\n")
print(t.test(xx[,a] ~ xx$性別)
}