如何使用 tidyevaluation 改变变量

How to mutate variable with tidyevaluation

我正在尝试创建一个函数,当用户输入要绘制的数据和变量时打印出一个绘图。我目前的问题是 group/subgroup 列可能是数字,所以我需要在绘图之前将它们变成因子。我正在尝试这样做:

create_plot <- function(df, group, subgroup, y){
  df %>% 
    select({{group}}, {{subgroup}}, {{y}}) %>% 
    mutate({{group}} = as.factor({{group}})) %>% 
    ggplot() +
    geom_boxplot(aes(x={{subgroup}}, y={{y}}, color={{group}}))
  }

create_plot(sales, YEAR, COUNTRY, VALUE)

但是报错:

Error: unexpected '=' in:
"    select({{group}}, {{subgroup}}, {{y}}) %>% 
    mutate({{group}} ="

这让我相信 mutate 不应该与 {{variables}} 一起使用。如何正确执行此操作?

mutate 的左侧使用 {{col}} := -

create_plot <- function(df, group, subgroup, y){
  df %>% 
    select({{group}}, {{subgroup}}, {{y}}) %>% 
    mutate({{group}} := as.factor({{group}})) %>% 
    ggplot() +
    geom_boxplot(aes(x={{subgroup}}, y={{y}}, color={{group}}))
}