我对 R 语言比较陌生,并使用它来分析我的数据。我正在使用一个名为“agricolae”的包及其 HSD.test 组件来输出 tukeyHSD 结果基于 anova 处理它。我已经简化了下面的代码,但本质上 tukey 代码是在一个 for 循环中运行的,该循环通过一个因素/交互列表运行。它工作正常,但是,我只希望循环在相应因子的方差分析结果显着的地方运行。(即 <= 0.05)。
f1 <- as.formula(paste(m,'~ Treatment + Genotype + GENOTYPExTREATMENT', sep = ''))
anova.result <- aov(f1, data = licor.data2)
treatment.list <- c('Treatment','Genotype', 'GENOTYPExTREATMENT')
for(t in treatment.list){
tukey.result <- HSD.test(anova.result, trt = t)$groups
}
使用rownames(summary(anova.result)[[1]])
退货[1] "Treatment " "Genotype " "GENOTYPExTREATMENT" "Residuals "
和str(summary(anova.result)[[1]])
退货:
Classes ‘anova’ and 'data.frame': 4 obs. of 5 variables:
$ Df : num 4 6 24 99
$ Sum Sq : num 0.01215 0.0019 0.00255 0.00527
$ Mean Sq: num 3.04e-03 3.16e-04 1.06e-04 5.33e-05
$ F value: num 57.02 5.94 1.99 NA
$ Pr(>F) : num 7.22e-25 2.50e-05 9.68e-03 NA
只是想知道是否有人知道如何构造一个when
orif/else
语句,它只会运行循环代码,其中相应的 't' 循环因子或交互的 $Pr(>F) 值小于 0.05。
提前致谢,
卢克