取消引用并将变量评估为ggplot2

时间:2017-11-23 07:49:24

标签: r ggplot2 dplyr

我想将变量名称传递给var并执行各种操作,包括ggplot。

显然UQ适用于数据操作,但对ggplot2不起作用。所以我的功能" foo"可以工作但是" foo1"没有按'吨

什么是最好的解决方案?

set.seed(100)

dat <- tibble(`a` = rbinom(100, 1, 0.2), `b` = rnorm(100))


foo <- function(var)
{
  var_q <- enquo(var)

  dat %>% mutate(`d` = UQ(var_q) + 1)

}

foo(`a`)


foo1 <- function(var)
{
  var_q <- enquo(var)

  dat %>% mutate(`d` = UQ(var_q) + 1) %>% ggplot(aes(x=UQ(var_q), y=`b`)) + geom_point()
}

foo1(`a`)

1 个答案:

答案 0 :(得分:0)

foo1 <- function(var) {
  var_q <- enquo(var)

  dat %>% 
    mutate(`d` = (!!var_q) + 1) %>% 
    ggplot(aes(x=eval(rlang::`!!`(var_q)), y=`b`)) + 
    geom_point()

 }