【发布时间】:2016-01-04 18:19:12
【问题描述】:
我尝试创建一个简单的函数来绘制ggvis 绘图。我知道我必须在这里使用非标准评估这就是为什么我使用lazyeval 包的intercept 函数:
test_fn <- function(data,xvar, yvar){
plot <-
data %>%
ggvis(lazyeval::interp(~x, x = as.name(xvar)),
lazyeval::interp(~y, y = as.name(yvar))) %>%
layer_points()
return(plot)
}
编辑:
这个功能很好用:
test_fn(mtcars,'mpg', 'qsec')
但是为了给定命令有效,我还应该做些什么:
test_fn(mtcars,mpg, qsec)
【问题讨论】:
-
你能澄清一下究竟是什么不起作用吗?使用您的功能,
test_fn(mtcars, "mpg", "wt")制作了一个情节。考虑在您的问题中包含reproducible example。 -
另请注意,您可以使用 ggvis 中的
prop函数来执行此类任务,而不是lazyeval::interp。它看起来像ggvis(prop("x", as.name(xvar)), prop("y", as.name(yvar))),但请参阅帮助页面了解更多示例。