首页 > 解决方案 > dplyr::bind_rows(...) 与 do.call(rbind, ...) 的符号列表

问题描述

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

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

如果有人能说出为什么会发生这种情况,将不胜感激。

标签: rdplyrrlang

解决方案


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

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

推荐阅读