R : TUKEY 遵循单向方差分析
R : TUKEY following one-way ANOVA
我在 R 中进行了单向方差分析,但是当我尝试进行 Tukey post-hoc 以查看哪些处理彼此不同时,我不断收到错误消息。
(我希望结果 运行ked (a, ab, b, bcd...etc.)
DATA details:
data = "abh2"
x = 6 treatments : "treatment"
y= moisture readings "moist" (n=63 per treatment, total=378)
我运行单向方差分析:
anov <- anova(lm(moist~treatment, data=abh2))
.# 结果表明我可以移动到 post hoc (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')"
农家乐套餐:
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<-偏差(模型)/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)
感谢反馈 Annie-Claude,它让我走上了正确的轨道,R 没有正确识别数据。
不过我使用这段代码解决了问题:
library(agricolae)
model<-aov(moist~treatment, data=abh2)
out <- HSD.test(model,"treatment", group=TRUE,console=TRUE)
看来我最初使用的 ANOVA 命令(来自 R 基础包)根本无法被我之后尝试执行的 Tukey 测试(使用 agricolae 包)理解。
Take-home给我留言:尝试在同一个包中进行相关的字符串分析!
p.s。获取 p-values:
summary(model)
它们可以像这样转换为数据帧:
as.data.frame(摘要(模型)[[1]])
我在 R 中进行了单向方差分析,但是当我尝试进行 Tukey post-hoc 以查看哪些处理彼此不同时,我不断收到错误消息。 (我希望结果 运行ked (a, ab, b, bcd...etc.)
DATA details:
data = "abh2"
x = 6 treatments : "treatment"
y= moisture readings "moist" (n=63 per treatment, total=378)
我运行单向方差分析:
anov <- anova(lm(moist~treatment, data=abh2))
.# 结果表明我可以移动到 post hoc (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')"
农家乐套餐:
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<-偏差(模型)/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)
感谢反馈 Annie-Claude,它让我走上了正确的轨道,R 没有正确识别数据。
不过我使用这段代码解决了问题:
library(agricolae)
model<-aov(moist~treatment, data=abh2)
out <- HSD.test(model,"treatment", group=TRUE,console=TRUE)
看来我最初使用的 ANOVA 命令(来自 R 基础包)根本无法被我之后尝试执行的 Tukey 测试(使用 agricolae 包)理解。
Take-home给我留言:尝试在同一个包中进行相关的字符串分析!
p.s。获取 p-values:
summary(model)
它们可以像这样转换为数据帧:
as.data.frame(摘要(模型)[[1]])