小编Dan*_*les的帖子

为什么使用list()对.dots = setNames()在dplyr中使用是否重要?

我使用动态变量名称调用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)

r dplyr

7
推荐指数
2
解决办法
2632
查看次数

标签 统计

dplyr ×1

r ×1