朗!!错误时!! 符号()

ali*_*m w 5 r ggplot2 tidyeval

与此类似:将函数参数传递给 dplyr 和 ggplot

我过去使用过!!sym(),没有任何令人难忘的头痛。

但是,现在当我尝试这样做时出现错误:

library(rlang)
library(tidyverse)


diamond_plot <- function (data, group, metric) {
    quo_group  <- sym(group)
    quo_metric <- sym(metric)

    data %>%
        group_by(!! quo_group) %>%
        summarise(price = mean(!! quo_metric)) %>%
        ggplot(aes(x = !! quo_group, y = !! quo_metric)) +
        geom_col()
}

diamond_plot(diamonds, "clarity", "price")
Run Code Online (Sandbox Code Playgroud)

错误是

Error in !quo_group : invalid argument type
Run Code Online (Sandbox Code Playgroud)

我错过了什么?