0

我不明白 multcompView 的函数 multcompletters 中的字母顺序。根据文档,它应该根据该组的平均值。在以下示例中,中间组得到 c(来自 abc)并且应该得到 b。这是一个错误吗?

require(multcompView)
# Data 
datacol <- c(21.1,20.2,21.8,20.9,23.3,21.1,20.2,21.8,20.9,23.3,19.8,16.4,
16.9,16.0,17.6,17.5,16.9,13.3,18.0,17.6,13.5,12.2,15.2,15.1,15.2,14.0)

# Group 
faccol <- c(rep(c(1,2),each=10),rep(3,6))

# Combined Dataframe 
tukeyset <- data.frame(datacol,as.factor(faccol))
colnames(tukeyset)[2] <- "faccol"

# Tukeytest 
tukeyres <- TukeyHSD(x=aov(lm(datacol~faccol,data=tukeyset)))
Tlevels <- tukeyres$faccol[,4]
multcompLetters(Tlevels) # WRONG ORDER, even reversed 
# Boxplot 
boxplot(tukeyset$datacol~tukeyset$faccol)
# adding the labels 
text(x=c(1,2,3),y=c(aggregate(data=tukeyset,datacol~faccol,mean)$datacol),
     labels=as.character(multcompLetters(Tlevels,reversed=TRUE)$Letters)[order(names(multcompLetters(Tlevels,reversed=TRUE)['Letters']$Letters))])
4

1 回答 1

1

哦不,刚遇到这个问题!花了2个小时终于搞定了!

您不能调用 multcompLetters。它会给你完全错误的顺序。

您必须使用 multcompLetters2、multcompLetters3 或 multcompLetters4。

另一个非常重要的一点是您必须将输入数据集转换为数据框,而不是 tibble! Tibble 不适用于此。

于 2021-04-29T11:30:55.280 回答