ボックスとして表示したいデータがありますggplot2を使用してプロットします。それは基本的にカウントであり、他の2つの変数によって階層化されています。ここにデータの例があります(実際にはもっと多くありますが、構造は同じです)。
TAG Count Condition
A 5 1
A 6 1
A 6 1
A 6 2
A 7 2
A 7 2
B 1 1
B 2 1
B 2 1
B 12 2
B 8 2
B 10 2
C 10 1
C 12 1
C 13 1
C 7 2
C 6 2
C 10 2
各タグには、固定数の条件1および条件2の観測値(ここでは「3」ですが、実際のデータでは「もっと」)。次のようなボックスプロットが必要です(「s」は上記のように配置されたデータフレームです)。
ggplot(s, aes(x=TAG, y=Count, fill=factor(Condition))) + geom_boxplot()
これで問題ありませんが、各タグのウィルコクソン検定のp値でx軸を並べることができます。たとえば、上記のデータでは、値は次のようになります(タグA、B、およびCの場合)。
> wilcox.test(c(5,6,6),c(6,7,7))$p.value
[1] 0.1572992
> wilcox.test(c(1,2,2),c(12,8,10))$p.value
[1] 0.0765225
> wilcox.test(c(10,12,13),c(7,6,10))$p.value
[1] 0.1211833
上のA、C、Bの順序付けを誘導しますx軸(最大から最小)。しかし、この情報をデータに追加する方法(具体的には、余分な列全体を追加するのではなく、タグレベルでp値を追加する方法)、またはそれを使用してx軸を変更する方法がわかりませんどんな助けでも大歓迎です。
回答:
回答№1は1これがその方法です。最初のステップは、それぞれのp値を計算することです TAG
。これを行うには ddply
TAGによってデータを分割し、式インターフェイスを使用してp値を計算します wilcox.test
。 plotステートメントは、p値に基づいてTAGを並べ替えます。
library(ggplot2); library(plyr)
dfr2 <- ddply(dfr, .(TAG), transform,
pval = wilcox.test(Count ~ Condition)$p.value)
qplot(reorder(TAG, pval), Count, fill = factor(Condition), geom = "boxplot",
data = dfr2)