2017-02-02 232 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)