【发布时间】:2014-11-07 16:34:13
【问题描述】:
lapply(7:12, function(x) ggplot(mydf)+geom_histogram(aes(mydf[,x])))
会报错Error in [.data.frame(mydf, , x) : undefined columns selected。
我使用了几个 SO 问题(例如 this)作为指导,但无法弄清楚我的错误。
【问题讨论】:
-
问题是
ggplot在aes()内部调用时并不知道x。 -
想想这些变量的范围。 X 在 aes() 内,在 ggplot() 内,在 function() 内。
-
@ahburr 不,
aes稍后会在 x 超出范围时进行评估。 -
你应该在这里使用
aes_string(x)而不是aes(mydf[,x])。请阅读差异。 -
"当您在 aes() 中调用 x 时,ggplot 不知道 x" - 这意味着存在范围问题。在编写这些具有多个交互/相互之间的函数的 R 代码行时,了解变量的范围通常被忽视并且容易混淆。我认为作者@koenbro 从范围方面考虑这个问题可能会学到很多东西。