簡體   English   中英

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

[英]R : TUKEY following one-way ANOVA

我在R中進行了單向ANOVA,但是當我嘗試進行Tukey事后檢查以確定哪些治療方法彼此不同時,我不斷收到錯誤消息。 (我希望對結果進行排名(a,ab,b,bcd ......等)

資料詳情:

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

我選擇了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)“#舊版本HSD.test()”(但我剛剛更新了agricolae包)

2)MSerror <-deviance(model)/ df

所以我嘗試過:

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

誰能幫助我從這里開始? 這似乎是一個非常簡單的問題,但我花了好幾個小時!

非常感謝 :)

嘗試使用以下代碼將治療指定為一個因素:

abh2$treatment <- factor(abh2$treatment)

感謝安妮 - 克勞德的反饋,它讓我走上了正確的道路,R沒有認識到它應該的數據。

我解決了使用此代碼的問題:

library(agricolae)

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

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

似乎我最初使用的ANOVA命令(來自R base包),之后我試圖執行的Tukey測試(使用agricolae包)根本無法理解。

給我帶回家的消息:嘗試在同一個包中進行相關的分析!

ps獲取p值:

summary(model)

它們可以轉換為數據幀,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM