2017-02-02 140 views
1

我在R中进行了单向方差分析,但当我试图做Tukey事后查看哪些处理彼此不同时,我总是收到错误消息。 (我想的结果进行排列(A,AB,B,BCD ...等)R:TUKEY单向方差分析

DATA细节:

数据= “ABH2”

X = 6个处理: “治疗”

Y =湿气读数 “潮湿”(N = 63%的治疗,总= 378)

我跑了单因素方差分析:

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 *** 

我选择杜克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) “#旧版本HSD.test()”(但我刚刚更新了agricolae包)

2)MSerror < -deviance(模型)/ DF

所以,我试图:

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

任何人都可以帮助我从这里前进吗?这似乎是一个非常简单的问题,但我已经花了几个小时!

非常感谢:)

回答

0

感谢您的反馈安妮 - 克洛德,它让我在正确的轨道上R没有按照它应该识别的数据。

library(agricolae) 

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

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

看来,我是最初使用(来自R基本包)的ANOVA命令,简单地不被Tukey检验我试图理解:

我虽然使用此代码解决了这个问题之后执行(使用agricolae软件包)。

对我有用的信息:尝试在同一个包中进行一系列相关分析!

p.s.这不会给p.value。针对该信息运行ANOVA本身:

anova(model) 
0

尝试用下面的代码来描述你的治疗是一个因素:

abh2$treatment <- factor(abh2$treatment)