3

3つの数値列を持つdata.frameから箱ひげ図を作成し、引数splitを使用してボックスをペイントで区切る必要があります。大きなdata.frameがありますが、必要なのは以下の例です。

paint<-c("blue", "black", "red", "blue", "black", "red", "blue", "black", "red")
car1<-c(100, 138, 123, 143, 112, 144, 343, 112, 334)
car2<-c(111, 238, 323, 541, 328, 363, 411, 238, 313)
car3<-c(432, 123, 322, 342, 323, 522, 334, 311, 452)
data<-data.frame(paint, car1, car2, car3)

>data
      paint  car1 car2 car3
   1  blue   100  111  432
   2  black  138  238  123
   3  red    123  323  322
   4  blue   143  541  342
   5  black  112  328  323
   6  red    144  363  522
   7  blue   343  411  334
   8  black  112  238  311
   9  red    334  313  452

1つの列のみを使用した場合、次の関数が機能します。

boxplot(split(data [、2]、data [、1]))

しかし、 3つの列を使用して箱ひげ図を作成しようとすると、関数が機能しません。

boxplot(split(data [、2:4]、data [、1]))

助けてくれてありがとう、そして英語が下手でごめんなさい。

4

1 に答える 1

7

最初にデータを長い形式にしてから、プロットしてみてください。

temp = reshape(data, direction="long", varying=2:4, sep="")
boxplot(split(temp[,3], temp[,1]))
# boxplot(car ~ paint, data=temp) ### Formula notation, easier to read

ここに画像の説明を入力してください

または、以下を使用しますlattice

library(lattice)
bwplot(car1 + car2 + car3 ~ paint, data=data)

ただし、その表記がベースRで機能しない理由はわかりませんboxplot

ここに画像の説明を入力してください

アップデート

lattice(Romanのコメントを読んだ後)元の質問を誤って解釈した場合に備えて、、、、およびを別々car1に並べて箱ひげ図を配置するオプション(ここでも)を使用します。これは、最初の例で作成された長い形式のデータを使用します。car2car3temp

bwplot(car ~ paint | paste0("Car ", time), data = temp)

ここに画像の説明を入力してください

于 2012-07-15T20:48:37.927 に答える