我的数据集是一个data.frame NewAuto,其名称为:
[1] "mpg" "cylinders" "displacement" "horsepower" "weight"
[6] "acceleration" "year" "origin" "name" "MPG01"
我想用ggplot在一张照片上制作七个情节。它是更大代码的一部分。我的目标是制作类似的情节mpg与其他列。每个图应标有y轴。
SCATTERplots <- lapply(
2:8,
function( column ){
DataPlot <- ggplot(
data = NewAuto,
aes(
x = mpg,
y=NewAuto[,column]
)
)+geom_point()+facet_grid(.~MPG01)+ylab(names(NewAuto)[column])
return( DataPlot)
}
)
do.call( grid.arrange, SCATTERplots)
不幸的是我得到了:
Error in `[.data.frame`(NewAuto, , column) : object 'column' not found
我该如何解决这个问题?
我是初学者,所以请考虑到这一点。
答案 0 :(得分:1)
您无法在aes
中使用变量名称。您只能使用数据对象中的文字值或元素名称。您应该使用aes_string
代替:
aes_string(
x = "mpg",
y="column"
)
你失败的原因是因为“NewAuto [,column]”它不是NewAuto中的一列。