当函数的参数是字符串而不是 quosure(例如来自 Shiny UI)时,我可以想到 2 个选项在dplyr::mutate
调用中使用它:
字符串-> quosure
library(dplyr) var <- "am" mtcars %>% mutate(!!rlang::sym(var) := !!rlang::sym(var) + 1)
mutate_at
library(dplyr) var <- "am" mtcars %>% mutate_at(var, funs(. + 1))
有任何理由偏爱其中之一吗?有没有我可能不知道的边境案件?为了保持一致性,我想坚持一个选项,我需要决定我应该选择哪一个。选项 2 需要较少的依赖项,但我想确保两个变体确实是相同的。