子集化然后绑定(bind)按预期工作
var <- c("wt", "mpg")
mtcars %>% select(!!!var) -> df1
mtcars %>% select(!!!var) -> df2
bind_rows(df1, df2)
但是如果我们跳过中间步骤
bind_rows(
mtcars %>% select(!!!var),
mtcars %>% select(!!!var)
)
失败并显示错误:只能拼接列表
最佳答案
这是 rlang 中的一个错误,与值拼接有关。所有带点的函数都支持拼接,即使它们不引用其输入。这很方便,因为当您有参数列表时,您不必将 do.call()
与这些函数一起使用,您只需拼接该列表即可。
由于技术原因,该机制有点不同。目前存在一个错误,在 select()
调用中使用的是值拼接而不是调用拼接。这应该很快就会得到解决。
关于r - bind_rows和tidyeval拼接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45264139/