是否有用于按行垂直合并多个数据帧的 R 函数?

Is there an R function for merging multiple data frames vertically by rows?

我想知道是否有一个 R 函数可以将多个数据帧的行垂直附加到一个数据帧中。我的数据集的列不同并且具有不同的名称,所以我不能使用 rbind()。我试过 bind_rows() 和 smartbind() 但仍然以水平方式获得输出。

这并不像我想象的那样容易解决:如果你尝试

rbind(unname(x), unname(y))

然后 R 抛出一个错误。

我发现的最简单的方法是在绑定之前将 data.frames 转换为矩阵:

as.data.frame(rbind(as.matrix(x), as.matrix(y)))

结果 data.frame 与给定的第一个 data.frame 具有相同的列名,在本例中为 x。但是,您仍然需要 data.frames 具有相同的列数。

在基础 R 之外,data.table 包有一个 rbind 版本可以在绑定时忽略名称:

library(data.table)
rbind(as.data.table(x), as.data.table(y), use.names = FALSE)

但是,这将 return 变成 data.table 而不是 data.frame,所以您之后可能需要将它转换回来。