使用虚拟数据集:

Species      Var1     Var2   Var3
   a          1         2      3
   a          4         5      6
   b          7         8      9
   b          10       11      12

我有多个种类和大约50个变量(Var50)。我想对每个响应变量对配对分组变量(Species)执行单向方差分析,并获得在95%CI处具有统计意义的频率输出。我开始编写一个函数来做到这一点,如下所示:
data<-read.table("example.txt", header=T, sep="\t")
function(y){
for(y in 2:50)
anova.r<-aov(y~Species, data = data)
result<-TukeyHSD(anova.r, conf.level = 0.95)
f.result ## I cannot figure out how to extract the "p adj" from the results

f.result<-sum(prob.result>=0.05)
write.table(f.result, file = "anova95.csv", sep = ",",
        col.names = FALSE, append=TRUE)
}

最终,我希望决赛 table 看起来像
                     Var1   Var2   Var3......Var50
Frequency at 95% CI   106    200    45         246

我知道我可以使用[[]]来访问Tukey测试结果中的数据。我试图使用tukey.results[[1]][,1]tukey.results[[1]][,3]都无济于事。 tukey.results[[1]]返回Tukey测试中的所有列。

另外,我想我可能不得不在函数中的某处使用cbind来获取各自列中的数据。或者我当时想使用apply命令是可能的,但是我不知道如何在每次迭代中更改响应变量的同时保持分组变量不变。

任何建议将不胜感激。

最佳答案

如果您还在寻找变量,请尝试以下操作:

summary(fm1 <- aov(breaks ~ wool + tension, data = warpbreaks))
kk<-TukeyHSD(fm1, "tension", ordered = TRUE)
kk$tension
result<-data.frame( kk$tension)
result["p.adj"]

            p.adj
M-H 0.447421021
L-H 0.001121788
L-M 0.033626219

关于r - 从TukeyHSD测试中提取 "p adj"值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18726076/

10-10 09:06