複数のファセットにボックスプロットがあり、各ファセット上でKruskal-Wallisテストを実行し、それぞれのファセットの左上に結果を配置したいと考えています。R:ggplot2 - ファセットごとのKruskal-Wallisテスト
これを例示するために、私は虹彩データセットを使用しています。ここに「治療」という追加の変数を追加しました。
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)))
以上が私の最高の試みである、それは以下を生成します。
それは明らかに間違っています。
各ファセットの左上に、メジャー(Petal.Length、Petal.Width、Sepal.Length、Sepal.Width)を渡ってKruskal-Wallisテストの結果を表示したいと思います。
試験は、データのサブセットごとに6回行う必要があります(処理および種に応じて)ので、p.valueを調整する必要があります(Benjamini-Hochberg氏が推奨)。
可能であれば、結果として得られる各p.valueを2小数点以下の桁数に丸めることができれば嬉しいです。可能であれば、ggpubrの使用を避け、問題があり、geom_text()に固執してください。ありがとう!
これは、それは感謝です!この場合、複数のテストのためにp値を調整する必要がありますか? – DaniCee
@DaniCee p値を調整する前にこのペーパーを読むことをお勧めします。 http://www.jclinepi.com/article/S0895-4356(00)00314-0/fulltext –