在 ggplot2 中,即使不存在给定的级别组合,我也希望箱形图中的框具有相同的宽度。
例如,在 mtcars 中,cyl=8 和 gear=4 不存在,这导致该图中的条形变大:
qplot(data=mtcars, x=as.factor(cyl), y=mpg,
colour=as.factor(gear), geom="boxplot")
对于条形图,使用这些级别组合的 NA 值填充我们的数据框可以解决问题,但对于箱线图则不行:
mtcars.fill <- data.frame(cyl=8,gear=4,mpg=NA)
mtcars <- rbind.fill(mtcars,mtcars.fill)
qplot(data=mtcars, x=as.factor(cyl), y=mpg, colour=as.factor(gear), geom="boxplot")
Warning message:
Removed 1 rows containing non-finite values (stat_boxplot).
这导致完全相同的情节。
stat_boxplot 有一个 na 值的参数,但默认情况下它设置为不删除 NA:
na.rm = FALSE