基于数据帧名称中的公共模式来rbind数据帧

时间:2017-01-23 17:01:15

标签: r dataframe apply rbind

假设我有多个数据框都具有相同的矢量名称,我想cbind所有具有commmon模式的数据框。所以对于这3个数据框:

test

我想df.1 <- data.frame(column1 = factor(sample(c("Male","Female"), 10, replace=TRUE)), speed=runif(10)) df.2 <- data.frame(column1 = factor(sample(c("Male","Female"), 10, replace=TRUE)), speed=runif(10)) df.3 <- data.frame(column1 = factor(sample(c("Male","Female"), 10, replace=TRUE)), speed = runif(10)) 使用常见模式“df。*”

我尝试创建一个列表,然后使用以下方法创建一个数据框:

rbind

然而,这仅产生一个6列的数据帧,有效地整理了整个事物,而不是重新绑定。

2 个答案:

答案 0 :(得分:8)

我们可以将lsmget

一起使用
library(data.table)
rbindlist(mget(ls(pattern = "^df\\.\\d+")))

dplyr

library(dplyr)
mget(ls(pattern="^df\\.\\d+")) %>%
              bind_rows()

rbind

中的base R
do.call(rbind, mget(ls(pattern="^df\\.\\d+")))

答案 1 :(得分:1)

您可以尝试:

new_df <- do.call("rbind",mget(ls(pattern = "^df.*")))