【发布时间】:2021-11-26 09:56:08
【问题描述】:
我正在尝试通过将变量名作为参数传递来编写函数。然后在下游管道中使用它来改变变量。
使用更经典但可能有点笨拙的方法我能够做到这一点:
var = "Sepal.Width"
scale_fun1 = function(dat,var) {
dat[,"new_var"] = dat[,var]*100
return(dat)
}
scale_fun1(iris,var)
我认为使用管道会很简单,但事实证明它比我认为的更困难,因为当函数传递管道 var 时,它不会按应有的方式解析,这会导致二进制运算符错误的非数字参数。请问这个怎么解决?
var = "Sepal.Width"
scale_fun2 = function(dat,var) {
iris %>% dplyr::mutate(new_variable = var * 100)
}
scale_fun2(iris,var)
【问题讨论】: