在 R 中的列上循环 t.test

Loop t.test over columns in R

我有一个数字变量和几个二进制变量。 我想为每个二进制变量循环测试。

正在使用

library(boot)
df <- nuclear

两者

  t.test(df$cost, df[6])

  t.test(df$cost, df$pr)

给我同样的结果。 但是,如果我想循环播放它,我将执行以下操作:

for(i in 6:9) {
  t.test(df$cost, df[i])
}

然后没有给出任何输出。

我怎样才能在这里得到结果,为什么这个输出被抑制了?

使用lapply的解决方案:

library(boot)

df <- nuclear 


list_of_ttests <- lapply(6:9, function(i){
    t.test(df[,1], df[,i])
})

这会生成一个 t 检验列表并将它们保存到一个列表中。

如果只是缺少输出,只需要加上print.

library(boot)
df <- nuclear
for(i in 6:9) {
  print(t.test(df$cost, df[i]))
}