【发布时间】:2021-08-15 22:11:38
【问题描述】:
是否可以在使用 tidy 评估重命名变量名后引用它?例如,我想编写一个与以下代码相同但允许在函数参数中指定新变量名称的函数:
library(tidyverse)
mtcars %>%
rename(cylinder = cyl) %>%
group_by(cylinder) %>%
summarize(mean_mpg = mean(mpg))
但是,我被困在group_by 行(在下面的代码中),因为!!varname 和{{ varname }} 都不能代替问号。我假设!!varname 不起作用,因为它扩展为字符串;并且 {{ varname }} 不起作用,因为调用函数时不存在具有新名称的列。我也看不到使用 glue 语法的方法,因为该行中没有分配任何内容。
my_rename <- function(df, varname) {
df %>%
rename("{varname}" := cyl) %>%
group_by(???) %>%
summarize(mean_mpg = mean(mpg))
}
【问题讨论】: