有没有办法使用plot()命令为数据框中的列创建一个箱形图?

时间:2018-01-21 05:25:51

标签: r dataframe plot attributes boxplot

有没有办法使用plot()命令为R中的数据框创建1个二进制(是/否)列和一个数字列的方框图?

我试过了:

boxplot(college$Accept, college$Private, main = "Accepted Versus Private")

但二进制值(Private)列是平的:Box Plot of Students Accepted Versus Private School

(我特意尝试使用plot()命令,但如果这不可行,我有兴趣学习如何使用boxplot()。)

1 个答案:

答案 0 :(得分:1)

OP中图像上的第二个框图是“平坦的”,因为当第一个框图的范围为0到25,000时,它的范围为0 - 1。 boxplot()工作正常。

更有用的图表是使用以下语法生成Accept变量的2个箱图,每个值为Private一个:

boxplot(Accept ~ Private,data=college)

由于OP不包含Complete, Minimal, and Verifiable Example,因此这里是一个带有生成数据的示例箱图。

set.seed(100317)
acceptPrivate <- rnorm(500,mean=5000,sd=2000)
acceptPrivate[acceptPrivate <0] <- 10
acceptPublic <- rnorm(500,mean=15000,sd=4000)
acceptPublic[acceptPublic <0] <- 10
Private <- c(rep(1,500),rep(0,500))
college <- data.frame(Private,Accept=c(acceptPrivate,acceptPublic))
boxplot(Accept ~ Private,data=college,main="Accept by Private")

enter image description here

通过将二进制Private变量转换为因子,可以使图表更易于理解。

# convert Private to factor 
college$Private <- factor(college$Private,labels=c("Public","Private"))
boxplot(Accept ~ Private,data=college,main="Accept by College Type")

enter image description here