假设我想使用dplyr
标准评估为列的每个值加 1。
我可以 :
library(dplyr)
data <- head(iris)
var <- "Sepal.Length"
mutate(data, !!rlang::sym(var) := !!quo(`+`(!!rlang::sym(var), 1)))
但是,如果我想+
用作二元运算符而不是函数怎么办?我不知道如何+
在 quosure 中用符号编写。在我的大多数尝试中,我在尝试将非数字参数(例如符号)与二元运算符一起使用时遇到错误+
。
使用不推荐使用的,mutate_
您可以使用lazyeval::interp
它让您轻松地做到这一点:
mutate_(data, .dots = setNames(list(lazyeval::interp(~var + 1, var = as.symbol(var))), var))
任何帮助,将不胜感激。谢谢。