Rhi*_*oBR 2 graphics split r boxplot dataframe
我需要从具有三个数字列的data.frame创建一个箱形图,并使用split参数通过paint分隔这些框。我有一个很大的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
Run Code Online (Sandbox Code Playgroud)
当我仅使用一列时,以下功能将起作用:
boxplot(split(data [,2],data [,1]))
但是,当我尝试使用三列创建箱线图时,该功能不起作用:
boxplot(split(data [,2:4],data [,1]))
感谢您的帮助,对不起英语不好。
尝试先将数据制成长格式,然后绘制:
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
Run Code Online (Sandbox Code Playgroud)

或者,使用lattice:
library(lattice)
bwplot(car1 + car2 + car3 ~ paint, data=data)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么符号不与基础R的工作boxplot虽然。

在情况下,我误解你原来的问题(阅读罗马的评论后),这里的(再次使用该选项lattice),该放箱图car1,car2和car3分别而是并排侧。这将使用temp在第一个示例中创建的长格式数据:
bwplot(car ~ paint | paste0("Car ", time), data = temp)
Run Code Online (Sandbox Code Playgroud)
