我希望有人有2分钟时间向我解释两件事。我有这个代码,我在一个非常大的数据集上运行。它使用multcompLetters为我的箱形图添加连接字母。我有4个治疗和2个基因型的实验设置,所以我的aov就像y~Treat + Geno + Geno:治疗。 当我使用处理(3df)或交互(7df)运行代码时,它似乎始终工作得很好。当我在Geno上运行它(这里是x)时,我得到一个错误。
Error in multcompLetters(t$x[, 1]) : Names required for t$x[, 1]
我真的无法找到原因。
第二个问题 -
[,4]在
中意味着什么groups2 <- multcompLetters(t$x[,4])
...
代码模型为你做了:
#RGR ~ Geno boxplot
y<-c(1,2,6,4,5,7,2,3,9,7,5,6,4,3,2,3,4,5,4,5)
x<-c("no","yes","no","yes","no","yes","no","yes","no","yes",
"no","yes","no","yes","no","yes","no","yes","no","yes")
fit <- aov(y~x)
summary(fit)
t <- TukeyHSD(aov(fit))
t
names(t)
boxplot(y~x, data=For.R, ylim=c(0,10),xlab="Some", ylab="Else")
tp <- extract_p(t)
tp
groups2 <- multcompLetters(t$x[,4])
lets <- groups2$Letters[c(4,1:3)]
text(1:4, 95 ,lets)
感谢。
答案 0 :(得分:1)
multcompLetters
期望的是一个值矩阵,因为预计会有多个比较。在您的数据中,您只需进行一次比较,yes
与no
。如果您查看t$x
变量,可以看到此矩阵:
t$x
# diff lwr upr p adj
# yes-no 0.3 -1.631884 2.231884 0.747998
通常,这里会有很多行。不幸的是,当您从此矩阵中仅选择一行时,所有行名称都将被删除,multcompLetters
需要名称。例如:
t$x[,4]
# [1] 0.747998 # No names.
要防止这种情况,您必须在子选择中添加一个参数:
t$x[,4,drop=FALSE]
# p adj
# yes-no 0.747998 # Names intact
multcompLetters(t$x[,4,drop=FALSE]) # Works.
# $Letters
# yes-no
# "a"
#
# $LetterMatrix
# a
# yes-no TRUE