dplyr :: bind_rows(...)与do.call(rbind,...)的符号列表

时间:2019-05-07 23:35:45

标签: r dplyr rlang

假设我具有以下数据框和名称的字符向量:

x <- data.frame(val = 1)
y <- data.frame(val = 2)
nms <- c("x", "y")

我想简单地将数据帧行绑定在一起。我可以使用do.callrbind来完成此任务,

library(dplyr)

do.call(rbind, syms(nms))
#  val
#1   1
#2   2

但是,如果我尝试dplyr::bind_rows,则会收到一个奇怪的错误,告诉我参数1必须是数据帧事件,尽管它是数据帧:

bind_rows(syms(nms))
#Error: Argument 1 must be a data frame or a named atomic vector, not a data.frame

如果有人能告诉我们为什么会发生这种情况,将不胜感激。

1 个答案:

答案 0 :(得分:1)

我们可以使用mget返回list中的数据集,然后执行bind_rows

library(dplyr)
mget(nms) %>%
   bind_rows
#  val
#1   1
#2   2