我使用动态变量名称调用mutate.一个主要有效的例子是:
df <- data.frame(a = 1:5, b = 1:5)
func <- function(a,b){
return(a+b)
}
var1 = 'a'
var2 = 'b'
expr <- interp(~func(x, y), x = as.name(var1), y = as.name(var2))
new_name <- "dynamically_created_name"
temp <- df %>% mutate_(.dots = setNames(expr, nm = new_name))
Run Code Online (Sandbox Code Playgroud)
哪个产生
temp
a b func(a, b)
1 1 1 2
2 2 2 4
3 3 3 6
4 4 4 8
5 5 5 10
Run Code Online (Sandbox Code Playgroud)
除了集合名称忽略了nm键之外,这几乎没有问题.这是通过将我的函数包装在list()中来解决的:
temp <- df %>% mutate_(.dots = setNames(list(expr), nm = new_name)) …
Run Code Online (Sandbox Code Playgroud)