R 如何使用多列和参数创建一个方框图;“拆分”;
我需要从带有三个数字列的data.frame中创建一个方框图,并使用参数split通过绘制来分隔方框。我有一个大data.frame,但我需要的是下面的示例:R 如何使用多列和参数创建一个方框图;“拆分”;,r,graphics,split,dataframe,boxplot,R,Graphics,Split,Dataframe,Boxplot,我需要从带有三个数字列的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,
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
paint尝试先将数据放入长格式,然后打印:
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
配合使用
更新
如果我误解了您的原始问题(在阅读Roman的评论后),这里有一个选项(再次使用晶格
),它将car1
、car2
和car3
的箱线图分别并排放置。这使用在第一个示例中创建的长格式数据temp
:
bwplot(car ~ paint | paste0("Car ", time), data = temp)
您希望图形是什么样子?x轴上有什么?每种颜色有三个箱线图(用于car1、car2和car3)?我怀疑这最后三个面板点阵图是OP想要的。@RomanLuštrik,我在读了你的评论后想到的@RhinoBR,如果您希望为每辆车单独绘制,而不是此面板输出,您也可以使用原始数据执行此操作:lappy(数据[-1],函数(x)箱线图(x~data$paint))
。