【发布时间】:2020-09-05 11:08:03
【问题描述】:
我曾经使用带有 .dots 参数的 mutate_ 使用用户提供的变量(字符串格式)和函数内部计算的变量(如 b下面的变量)如下:
require(dplyr)
f <- function(data, a)
{
b <- "Sepal.Length"
mutate_call <- list(new_1 = lazyeval::interp( ~ a*10, a=as.name(a)),
new_2 = lazyeval::interp( ~ b*10, b=as.name(b)) )
data %>%
as_tibble() %>%
mutate_(.dots = mutate_call) %>%
head() %>%
print()
}
f(iris, "Sepal.Width")
但是,当转换到最近的 dplyr 版本时,这不再可能(除非我继续使用已弃用的版本 mutate_)。如何使用 mutate 而不是 mutate_ 获得与 f 相同的结果?
如果我能继续使用这些公式会容易得多。
【问题讨论】: