Я пытаюсь добавить cld к моему boxplot, и я пытаюсь следовать этому примеру с пакетом "multcompView". Я получаю хороший boxplot со значениями cld, однако, значения cld выглядят в странном порядке на boxplot. Я хочу, чтобы значения cld были «a», «b», «c» и «d».
Набор данных выглядит следующим образом:
structure(my_data)
response treatment
1 45 RU
2 82 LU
3 61 LU
4 63 RU
5 36 MA
6 36 NN
7 45 MA
8 55 NN
9 51 NN
10 62 MA
11 51 RU
12 54 LU
Мой тест Тьюки:
TUKEY<- TukeyHSD(x=ANOVA, "my_data$treatment", conf.level = 0.95)
TUKEY
Tukey multiple comparisons of means
95% family-wise confidence level
diff lwr upr p adj
NN-MA 1.400000e+00 -10.949588 13.74959 0.9899521
RU-MA 1.400000e+00 -10.949588 13.74959 0.9899521
LU-MA 1.810000e+01 5.750412 30.44959 0.0019124
RU-NN 1.421085e-14 -12.349588 12.34959 1.0000000
LU-NN 1.670000e+01 4.350412 29.04959 0.0044890
LU-RU 1.670000e+01 4.350412 29.04959 0.0044890
Итак, у меня есть существенные различия между LU-MA, LU-NN и LU-RU. Из приведенного выше примера ссылки я сделал следующий код:
generate_label_df <- function(TUKEY, variable){
# Extract labels and factor levels from Tukey post-hoc
Tukey.levels <- TUKEY[[variable]][,4]
Tukey.labels <- data.frame(multcompLetters(Tukey.levels)['Letters'])
# put the labels in the same order as in the boxplot :
Tukey.labels$management=rownames(Tukey.labels)
Tukey.labels=Tukey.labels[order(Tukey.labels$treatment) , ]
return(Tukey.labels)
}
LABELS <- generate_label_df(TUKEY , "my_data$treatment")
LABELS
treatment letter
LU b
MA a
NN a
RU a
a <- boxplot(my_data$response ~ my_data$treatment, ylim=c(min(my_data$response) , 1.1*max(my_data$response)), ylab="species per stand" , xlab= "treatment", main="Average species richness")
over <- 0.1*max( a$stats[nrow(a$stats),] )
text( c(1:nlevels(my_data$treatment)) , a$stats[nrow(a$stats),]+over , LABELS[,1] )
Как видите, уровни, назначенные для лечения, не достигают результаты теста Тьюки. Я предполагаю, что моя проблема в том, чтобы упорядочить метки в том же порядке, что и в boxplot, но опять же, я не очень хорош в R, и проблема может быть где-то еще. Любые идеи, как это исправить?