3

我将如何执行以下操作?

在单个图中,我想创建多个箱线图,每个 X 变量是下面显示的分类变量的组合。

data(mtcars)
# y variable is mpg
mtcars$vs  = as.factor(mtcars$vs)
mtcars$cyl = as.factor(mtcars$cyl)
4

2 回答 2

2

如果您的意思是单个图与两个因素(发动机形状 (V/S) 和 cyl)的所有组合,类似这样:

with(mtcars,boxplot(mpg~interaction(as.factor(ifelse(vs,"S","V")),as.factor(cyl))))
abline(v=c(2.5,4.5),col=8)

在此处输入图像描述

(假设我有“S”和“V”——用于“直”和“vee”引擎配置——正确的方法;如果 R 实现与霍金 1976 年的论文一致——如第一页所述——我认为应该是对的)

于 2014-08-11T00:09:37.560 回答
1

你的意思是这样的:

data(mtcars)
y <- mtcars$mpg
vs <- as.factor(mtcars$vs)
cyl <- as.factor(mtcars$cyl)

par(mfrow=c(1,2))
plot(formula = y ~ cyl + vs)

同样,您可以这样使用lattice包:

require(lattice)

bwplot( ~ y | vs + cyl)

注意:这种绘图风格的唯一问题是,结果实际上是 6 个绘图合二为一(因为“vs”有 2 个级别 *“cyl”有 3 个级别)。因此,除非您有足够的数据可用于每种可能的组合,否则生成的图可能最终看起来不会那么好......

于 2014-08-10T23:45:08.437 回答