根据名称序列组合多个数据框
combine multiple dataframes based on sequence of names
假设我有 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
it.I 想要根据日期合并 (rbind
?) data.frame
。在这种情况下,合并 data.frame
个 包含 从 01-01-00
到 10-01-00
的日期。
我有下面的代码来组合所有数据帧,但是如果我只想 select 上面显示的那些呢?
All_dfs <- do.call(rbind, eapply(.GlobalEnv,function(x) if(is.data.frame(x)) x))
是不是先创建一个列表比较好?
我们可以使用mget
在list
中获取'Season'的值,然后rbind
在data.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
假设我有 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
it.I 想要根据日期合并 (rbind
?) data.frame
。在这种情况下,合并 data.frame
个 包含 从 01-01-00
到 10-01-00
的日期。
我有下面的代码来组合所有数据帧,但是如果我只想 select 上面显示的那些呢?
All_dfs <- do.call(rbind, eapply(.GlobalEnv,function(x) if(is.data.frame(x)) x))
是不是先创建一个列表比较好?
我们可以使用mget
在list
中获取'Season'的值,然后rbind
在data.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