2011-10-24 8 views
3

私は2つのグループのボックスプロットとして表示したいデータ(x1とx2とy1とy2)を2つ持っています。ボックスプロットの2つのグループを表示するにはどうすればいいですか?

私は、次を試してみましたが、ベクトルx1とx2の(とY1とY2)が同じ長さではないので、それは間違ったデータが表示されます。

x1 <- c(2,3,4) 
x2 <- c(0,1,2,3,4,5) 

y1 <- c(3,4,5) 
y2 <- c(1,2,3,4,5,6) 

d0 <- matrix(c(x1, x2), ncol=2) 
d1 <- matrix(c(y1, y2), ncol=2) 

lmts <- range(d0,d1) 

par(mfrow = c(1, 2)) 
boxplot(d0, ylim=lmts, xlab="x") 
boxplot(d1, ylim=lmts, xlab="y") 

これは、それが(もちろん示したものです、うん

drawn

+1

あなたは、D0とD1を入力したことがありますか?彼らは本当にあなたが望むものですか? – nzcoops

答えて

3

、またはあなたが使用している可能性が:私は、最初の箱ひげ図のウィスカーが)×1、などの範囲に応じて、代わりに2から4に行きたかったです。コメントに基づいていない、完全な側

lmts <- range(x1,x2,y1,y2) 
par(mfrow = c(1, 2)) 
boxplot(x1, x2, ylim=lmts,names=c("x1","x2"),xlab="x") 
boxplot(y1, y2, ylim=lmts,names=c("y1","y2"),xlab="y") 

enter image description here

...

> quantile(c(2,3,4), type=1) 
    0% 25% 50% 75% 100% 
    2 2 3 4 4 
> quantile(c(2,3,4), type=2) 
    0% 25% 50% 75% 100% 
    2 2 3 4 4 
> quantile(c(2,3,4), type=3) 
    0% 25% 50% 75% 100% 
    2 2 3 3 4 
> quantile(c(2,3,4), type=4) 
    0% 25% 50% 75% 100% 
2.00 2.00 2.50 3.25 4.00 
> quantile(c(2,3,4), type=5) 
    0% 25% 50% 75% 100% 
2.00 2.25 3.00 3.75 4.00 
> quantile(c(2,3,4), type=6) 
    0% 25% 50% 75% 100% 
    2 2 3 4 4 
> quantile(c(2,3,4), type=7) 
    0% 25% 50% 75% 100% 
2.0 2.5 3.0 3.5 4.0 
> quantile(c(2,3,4), type=8) 
     0%  25%  50%  75%  100% 
2.000000 2.166667 3.000000 3.833333 4.000000 
> quantile(c(2,3,4), type=9) 
    0% 25% 50% 75% 100% 
2.0000 2.1875 3.0000 3.8125 4.0000 
+0

+1、私はこのソリューションを自分自身で投稿しようとしていました。 2つのアプローチが異なる結果をもたらすことに注意してください。私はこれがN/Aアイテムをどう扱うのかが原因だと思いますが、わかりません。 –

+0

Mmm、面白いポイントのベン。違いを示す画像を追加しました。あなたはNAのコメントで正しい方向にいると思います。私たちは、NAsなどのベクターを使用していないので、この方法では問題にはなりません。 – nzcoops

+0

はい、Tukeyプロットで私の記憶をリフレッシュするには、ボックスの境界線が25パーセンタイルと75パーセンタイルにある必要があります。 3つのデータポイントの場合、それぞれ2/3と3/4ポイントを分割します(xの場合)。そのうち2つがN/Aである5つのデータポイントについては、どのように「正しく」計算されているかわかりません。編集するには:実際には、実際には、 "正しい"パーセンタイルが3つのデータポイントに対してNAなしで何か分かっているのかどうかはまだ分かりません。 –

1

別のオプションは、ggplot2パッケージを使用することです。 1つのdata.frameにデータを格納するにはもう少し作業が必要です。しかしそれは非常に簡単です。

library(ggplot2) 
dataset <- data.frame(
    Group = c(rep("x1", length(x1)), rep("x2", length(x2)), rep("y1", length(y1)), rep("y2", length(y2))), 
    Subplot = c(rep("x", length(x1) + length(x2)), rep("y", length(y1) + length(y2))), 
    Value = c(x1, x2, y1, y2)) 
ggplot(dataset, aes(x = Group, y = Value)) + geom_boxplot() + facet_wrap(~Subplot, scales = "free_x") 

enter image description here

関連する問題