0

我正在尝试在 for 循环中在 R 中绘制多个箱线图,但无法使用它引用数据集中的列,data.frame[column]因为它返回以下内容:

Error in model.frame.default(formula = e[1] ~ e[2]) : invalid type (list) for variable 'e[1]'

以下代码返回我得到的相同错误:

x <- rnorm(20)
y <- rnorm(20)
e <- data.frame(x, y)
boxplot(e[1] ~ e$y)

有什么建议么?我真的被困在这里了。

4

2 回答 2

1

要访问x数据框的列df,请使用

df[[x]]

或者

df[ , x]
于 2012-11-08T19:31:32.930 回答
1

这里有两个问题:

1.正如@Sven Hohenstein 所指出的,您的boxplot调用需要正确引用 data.frame 列。

2.我认为你想要两个并排的箱线图(x 和 y),而不是 x ~ y。例如:

# All these commands are equivalent:
boxplot(e$x, e$y)
boxplot(e[[1]], e[[2]])
boxplot(e[, 1], e[, 2])

# Probably not what you want:
boxplot(e$x ~ e$y)
boxplot(x ~ y, data=e)
于 2012-11-08T19:52:27.993 回答