gpt4 book ai didi

rlang - 创建带有 curl 的字符串以供稍后评估

转载 作者:行者123 更新时间:2023-12-04 07:50:28 26 4
gpt4 key购买 nike

我正在尝试创建一个字符串,其中包含“大括号”和用户基于的对象。然后我将在 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)
两个问题:
  • 是否可以在首次调用 curl curl 时创建带有 curl curl 的字符串而不对其进行评估?
  • 如何将空字符串传递给 rlang::parse_expr() ?

  • 谢谢

    最佳答案

    在这种情况下,我不建议使用字符串。您应该可以使用 aes()对象更容易。例如

    test_func <- function(df, x_var, y_var, color_by){

    color_aes <- if(!missing(color_by))
    aes(color = {{color_by}}) else aes()

    df %>%
    ggplot(aes(x = {{x_var}}, y = {{y_var}})) +
    geom_point(color_aes)
    }

    关于rlang - 创建带有 curl 的字符串以供稍后评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67012659/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com