有没有办法使用plot()
命令为R中的数据框创建1个二进制(是/否)列和一个数字列的方框图?
我试过了:
boxplot(college$Accept, college$Private, main = "Accepted Versus Private")
但二进制值(Private
)列是平的:
(我特意尝试使用plot()
命令,但如果这不可行,我有兴趣学习如何使用boxplot()
。)
答案 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")
通过将二进制Private
变量转换为因子,可以使图表更易于理解。
# convert Private to factor
college$Private <- factor(college$Private,labels=c("Public","Private"))
boxplot(Accept ~ Private,data=college,main="Accept by College Type")