根据名称序列组合多个数据框

combine multiple dataframes based on sequence of names

假设我有 30 个数据帧,所有数据帧都以 01/01/200030/01/2000 的日期命名,格式为 ddmmyy(下面的代码):

Season <- seq(as.Date("2000-01-01"),as.Date("2000-01-30"),1)
Season <- format(Season,"%d%m%y")

for (s in Season) {

  df <- data.frame(X=1:10, Y=1:10)

  aa <- paste(s,"tests",s ,sep = "_")

  assign(aa,df)

}

您可以看到,每个名字都添加了单词 tests it.I 想要根据日期合并 (rbind?) data.frame。在这种情况下,合并 data.frame 包含 01-01-0010-01-00 的日期。

我有下面的代码来组合所有数据帧,但是如果我只想 select 上面显示的那些呢?

All_dfs <- do.call(rbind, eapply(.GlobalEnv,function(x) if(is.data.frame(x)) x))

是不是先创建一个列表比较好?

我们可以使用mgetlist中获取'Season'的值,然后rbinddata.frame中获取list的值.由于有一个后缀“tests”,后跟 "Season" 连接到 "Season",我们可以使用 paste 来获取字符串,然后使用 mget.

res <- do.call(rbind, mget( paste0(Season[1:10], "_tests_", Season[1:10])))
dim(res)
#[1] 100   2