几位老师的方法都非常好。另外,如果用循环的话,最好预先定义长度合适的向量,而非长度为0的向量。
如果你的数据是data.frame,可以用sapply。
# 构建一个数据框
df <- data.frame(
a = rnorm(100, 0, 1),
b = rnorm(100, 6, 1),
c = rnorm(100, 10, 1),
d = rnorm(100, 15, 1),
e = rnorm(100, 20, 1)
)
# 目的:对a和其他各列做t检验
sapply(2:ncol(df), function(col) t.test(df$a, df[[col]])$p.value)
# 如果喜欢使用purrr包
purrr::map_dbl(2:ncol(df), ~t.test(df$a, df[[.x]])$p.value)
这种情况生成的结果是向量,你可以round。