【发布时间】:2012-05-26 09:53:06
【问题描述】:
当我使用 ggplot 绘图时,我试图在 aes 中使用局部变量。这是我的问题归结为本质:
xy <- data.frame(x=1:10,y=1:10)
plotfunc <- function(Data,YMul=2){
ggplot(Data,aes(x=x,y=y*YMul))+geom_line()
}
plotfunc(xy)
这会导致以下错误:
Error in eval(expr, envir, enclos) : object 'YMul' not found
似乎我无法在aes 中使用局部变量(或函数参数)。会不会是因为aes的内容稍后在局部变量超出范围时执行?我怎样才能避免这个问题(除了不使用aes 中的局部变量)?
【问题讨论】:
-
我认为是因为它仍然希望你传递 Ymul 但你只给 plotfunc(xy)
-
不正确,应该使用默认值
-
我正在运行上面的代码并且没有收到任何错误(2017 年 10 月 23 日),
ggplot2是否有更新来解释为什么现在可以工作?