/ /計算された統計を使用したggplot2ボックスプロットのx軸の順序付け-r、ggplot2

計算統計 - r、ggplot2を使用してggplot2 boxplotでx軸を注文する

ボックスとして表示したいデータがあります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)

ここに画像の説明を入力