R:TUKEY遵循单因素方差分析

时间:2017-02-02 22:07:23

标签: r package anova tukey

我在R中进行了单向ANOVA,但是当我尝试使用Tukey post-hoc查看哪些治疗方法彼此不同时,我不断收到错误消息。 (我希望结果排名(a,ab,b,bcd ......等)

  

数据详情:

     

data =“abh2”

     

x = 6次治疗:“治疗”

     

y =水分读数“潮湿”(每次处理n = 63,总计= 378)

我进行了单向ANOVA:

anov <- anova(lm(moist~treatment, data=abh2))

。#结果表明我可以转到事后(p <0.05):

Analysis of Variance Table

Response: moist
           Df Sum Sq Mean Sq F value    Pr(>F)    
treatment   5 1706.3  341.27  25.911 < 2.2e-16 ***

我选择 Tukey HSD 并尝试使用2种方法运行它,但收到两者的错误消息:

内置R功能:

TukeyHSD(anov)
# ERROR : no applicable method for 'TukeyHSD' applied to an object of class "c('anova', 'data.frame')"

Agricolae包:

    HSD.test(anov, "treatment", group=TRUE, console=TRUE)
    # ERROR : Error in HSD.test(anov, "treatment", group = TRUE, console = TRUE) :
argument "MSerror" is missing, with no default

我发现MSerror是

1)“#Old version HSD.test()”(但我刚刚更新了agricolae包)

2)MSerror&lt; -deviance(model)/ df

所以我试过了:

HSD.test(anov, "treatment", MSerror=deviance(moist)/5, group=TRUE, console=TRUE)
 *but still* # ERROR: $ operator is invalid for atomic vectors

有人能帮助我从这里开始吗?这似乎是一个非常简单的问题,但我已经花了好几个小时!

非常感谢:)

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码将治疗指定为一个因素:

abh2$treatment <- factor(abh2$treatment)

答案 1 :(得分:0)

感谢安妮 - 克劳德的反馈,它让我走上了正确的轨道,R没有认识到应该的数据。

我使用此代码解决了问题:

library(agricolae)

model<-aov(moist~treatment, data=abh2)

out <- HSD.test(model,"treatment", group=TRUE,console=TRUE)

看起来我最初使用的ANOVA命令(来自R base包),之后我试图执行的Tukey测试(使用agricolae包)根本无法理解。

为我带来回复信息:尝试在同一个套餐中进行相关的分析!

P.S。获得p值:

summary(model)

可以将它们转换为如下数据框:

as.data.frame(summary(model)[[1]])