合并多个数据帧的列表

时间:2015-02-17 10:20:32

标签: r

我正在尝试将当前环境中的所有数据框合并到一个数据框中,最初我尝试了

Reduce(function(x,y) merge(x,y,by="Date"),list(ls()))

但这不起作用,只返回一个数据框名称列表。

我知道如果我这样做会有效。

Reduce(function(x,y) merge(x,y,by="Date"),list(df1,df2,df3....))

但为什么最初的尝试不起作用?

两个

typeof(list(ls())) 
typeof(list(df1,df2,df3)) 

返回类型“列表”

如果数据帧太多我无法将它们全部输入Reduce函数,我该怎么办?

1 个答案:

答案 0 :(得分:2)

试试这个:

lst = lapply(Filter(function(x) class(get(x))=='data.frame', ls(env=globalenv())), get)
Reduce(function(x,y) merge(x,y,by="Date"),lst)