【发布时间】:2021-07-04 20:02:49
【问题描述】:
我正在尝试创建一个字符串,其中包含“大括号”和用户基于的对象。然后我将在 ggplot 命令中解析和评估这个表达式。
test_func <- function(df, x_var, y_var, color_by){
color_aes <- ifelse(!missing(color_by),
glue::glue("aes(color = {{{color_by}}})"), "") %>%
rlang::expr()
df %>%
ggplot(aes(x = {{x_var}}, y = {{y_var}})) +
geom_point(rlang::eval_tidy(rlang::parse_expr(color_aes)))
}
test_func(mtcars, cyl, disp)
test_func(mtcars, cyl, disp, carb)
两个问题:
- 是否可以在第一次调用 curly curly 时创建带有 curly curly 的字符串而不对其进行评估?
- 如何将空字符串传递给
rlang::parse_expr()?
谢谢
【问题讨论】: