子设置,然后绑定按预期工作
var <- c("wt", "mpg")
mtcars %>% select(!!!var) -> df1
mtcars %>% select(!!!var) -> df2
bind_rows(df1, df2)但如果我们跳过中间步骤
bind_rows(
mtcars %>% select(!!!var),
mtcars %>% select(!!!var)
)它在Error: only lists can be spliced中失败
发布于 2017-07-23 11:00:03
这是rlang中的一个bug,它与值拼接有关。所有采用点的函数支持拼接,即使它们没有引用它们的输入。这很方便,因为当您有一个参数列表时,您不必在这些函数中使用do.call(),只需拼接列表即可。
由于技术原因,这种机制有点不同。当前存在一个bug,在select()调用中使用的是值拼接而不是调用剪接。这个问题应该很快就能解决。
发布于 2017-07-23 10:44:57
我从不使用!!或!!!,因为经常会出现问题。相反,我使用UQ。我不知道这是不是很好的练习,但效果很好。
bind_rows(
UQ(mtcars %>% select(var)),
UQ(mtcars %>% select(var))
)https://stackoverflow.com/questions/45264139
复制相似问题