我想将变量名称传递给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`)
答案 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()
}