昨日この質問への回答を投稿して以来、これは私を悩ませてきました。
次のデータを検討してください。
carpaint <- data.frame(paint = c(rep(c("blue", "black", "red"),
times=3)),
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))
色で箱ひげ図を生成したい場合(「車」による二次グループ化を無視)、bwplot
からの数式表記を簡単に使用できますlattice
。
library(lattice)
bwplot(car1 + car2 + car3 ~ paint, data=carpaint)
ただし、boxplot
fromを使用して同様のプロットを取得するgraphics
には、数式の表記が異なるため、最初にデータを長い形式に変換してから、次のようにプロットする必要があります。
carpaint.l = reshape(carpaint, direction="long", varying=2:4, sep="")
boxplot(car ~ paint, data=carpaint.l)
質問:最初にデータを再形成せずに、できれば数式表記を使用して、boxplot
から同じプロットを取得する方法はありますか?graphics
(これは、リンクされた質問のOPが望んでいた出力のタイプではない可能性があるという事実を無視しています-彼らはまだ私の答えや@RomanLuštrikによる質問にコメントしていません。私はただ私を満足させようとしています好奇心を持ち、数式表記をよりよく理解することを学びます。)
注:代替案を提供することは間違いなく歓迎されますが、いくつかの選択肢が機能している理由と機能していない理由を理解するのに役立つことを願っています。たとえば、なぜ機能するのに
boxplot(as.matrix(carpaint[, 2:4]) ~ carpaint$paint)
機能boxplot(carpaint[, 2:4] ~ carpaint$paint)
しないのか。boxplot
のドキュメントには、必要ではないように見えても、プロットする前に行列をデータフレームに変換する例があるため、奇妙だと思います。