J'ai des boxplots dans plusieurs facettes et je voudrais effectuer un test de Kruskal-Wallis sur chaque facette, et placer le résultat en haut à gauche de chaque facette respective. Pour illustrer cela, j'utilise le jeu de données iris, auquel j'ai ajouté une variable supplémentaire appelée "traitement".R: ggplot2 - Test de Kruskal-Wallis par facette
MWE:
library(reshape2)
library(ggplot2)
data(iris)
iris$treatment <- rep(c("A","B"), length(iris$Species)/2)
mydf <- melt(iris, measure.vars=names(iris)[1:4])
mydf$treatment <- as.factor(mydf$treatment)
mydf$variable <- factor(mydf$variable, levels=sort(levels(mydf$variable)))
ggplot(mydf,aes(x=variable, y=value)) +
geom_boxplot(aes(fill=Species)) +
facet_grid(treatment~Species, scales="free", space="free_x") +
geom_text(label=paste("Kruskal-Wallis, p=", with(mydf, kruskal.test(value ~ variable)$p.value)))
Ce qui précède est ma meilleure tentative, elle produit ce qui suit.
Il est évidemment faux. Je voudrais que le résultat d'un test de Kruskal-Wallis à travers les mesures (Petal.Length, Petal.Width, Sepal.Length, Sepal.Width), apparaître dans le coin supérieur gauche de chaque facette.
Le test devrait être effectué 6 fois pour chaque sous-ensemble de données (selon le traitement et l'espèce), donc je suppose que la valeur p devrait être ajustée (par Benjamini-Hochberg de préférence).
Si possible, ce serait génial si chaque valeur p résultant pouvait être arrondi à 2 positions décimales. Et si possible, je préfère éviter l'utilisation de ggpubr, car j'ai des problèmes avec ça, et je m'en tiens à geom_text(). Merci!
C'est-ce grâce! Les valeurs de p devraient-elles être ajustées pour des tests multiples dans ce cas? – DaniCee
@DaniCee Je suggère de lire ce papier avant d'ajuster ou de ne pas ajuster vos p-values. http://www.jclinepi.com/article/S0895-4356(00)00314-0/fulltext –