Gibt es eine Funktion zum hinzufügen von AOV-post-hoc-Tests Ergebnisse zu ggplot2 ein boxplot?

Ich möchte noch hinzufügen, dass die Ergebnisse des Tukey.HSD post-hoc-test, um eine ggplot2 boxplot. Diese SO beantworten enthält ein Handbuch Beispiel für das, was ich will (z.B. die Buchstaben auf dem Grundstück wurden manuell Hinzugefügt; Gruppen, die eine gemeinsame Buchstaben unterscheiden sich nicht mit p>auch immer).

Gibt es eine Funktion zum hinzufügen von AOV-post-hoc-Tests Ergebnisse zu ggplot2 ein boxplot?

Gibt es eine automatische Funktion add Briefe an ein boxplot basiert auf dem AOV und der Tukey HSD post-hoc-Analyse?

Ich denke, es wäre nicht allzu schwierig zu schreiben, wie eine Funktion. Es würde in etwa so Aussehen:

set.seed(0)
lev <- gl(3, 10)
y <- c(rnorm(10), rnorm(10) + 0.1, rnorm(10) + 3)
d <- data.frame(lev=lev, y=y)

p_base <- ggplot(d, aes(x=lev, y=y)) + geom_boxplot() 

a <- aov(y~lev, data=d)
tHSD <- TukeyHSD(a)

# Function to generate a data frame of factor levels and corresponding labels
generate_label_df <- function(HSD, factor_levels) {
  comparisons <- rownames(HSD$l)
  p.vals <- HSD$l[ , "p adj"]

  ## Somehow create a vector of letters
  labels <- # A vector of letters, one for each factor level, generated using `comparisons` and `p.vals`
  letter_df <- data.frame(lev=factor_levels, labels=labels)
  letter_df
}

# Add the labels to the plot
p_base + 
  geom_text(data=generate_label_df(tHSD), aes(x=l, y=0, label=labels))

Merke ich, dass der TukeyHSD Objekt hat einen plot Methode, und es ist ein anderes Paket (welches ich habe kann nicht scheinen zu finden), die das macht, was ich beschreibe, ist in der base-Grafik, aber ich würde wirklich lieber, dies zu tun in ggplot2.

InformationsquelleAutor Drew Steen | 2013-09-12

Schreibe einen Kommentar