【发布时间】:2015-07-31 16:50:43
【问题描述】:
我的数据和代码是这样的:
my_vector <- rnorm(150)
my_factor1 <- gl(3,50)
my_factor2 <- gl(2,75)
tapply(my_vector, my_factor1, function(x)
t.test(my_vector~my_factor2, paired=T))
我想对 my_factor1 的每个级别进行单独的 t 检验,以测试 my_vector 对 my_factor2 的两个级别。
但是,在我的代码中,t-test 不会拆分 my_factor1 的级别,并且每个级别的结果都相同,因为 my_vector 完全包含在每个 t.test 中。
这是我的代码的输出:
$`1`
Paired t-test
data: my_vector by my_factor2
t = 0.2448, df = 74, p-value = 0.8073
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.2866512 0.3669667
sample estimates:
mean of the differences
0.04015775
$`2`
Paired t-test
data: my_vector by my_factor2
t = 0.2448, df = 74, p-value = 0.8073
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.2866512 0.3669667
sample estimates:
mean of the differences
0.04015775
$`3`
Paired t-test
data: my_vector by my_factor2
t = 0.2448, df = 74, p-value = 0.8073
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.2866512 0.3669667
sample estimates:
mean of the differences
0.04015775
我错过了什么或做错了什么?
【问题讨论】:
-
你说
function(x)但公式中的x 在哪里?还有函数中的~是什么? -
lapply(X = split(my_vector, my_factor1), FUN = function(z) {lapply(X = split(my_vector, my_factor2), FUN = function(y, z, ...) t.test(y, z), z, paired = T)})这以通用方式执行您想要的操作,并且可以处理因子向量中的1:n因子,但它不使用tapply