假设我有30个数据框,所有数据框都以01/01/2000
到30/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
字样。我想根据日期合并(rbind
?)data.frame
s。在这种情况下,请将data.frame
与01-01-00
之间的日期<{>}包含的10-01-00
合并。
我有以下代码来组合所有数据帧但是如果我只想选择上面显示的那些?
All_dfs <- do.call(rbind, eapply(.GlobalEnv,function(x) if(is.data.frame(x)) x))
首先创建列表会更好吗?
答案 0 :(得分:1)
我们可以使用mget
在list
中获取“季节”的值,然后rbind
list
data.frame
的{{1}}。由于后缀为“ tests ”,后跟“Season”连接到“Season”,我们可以使用paste
来获取字符串,然后使用mget
。
res <- do.call(rbind, mget( paste0(Season[1:10], "_tests_", Season[1:10])))
dim(res)
#[1] 100 2