我正在尝试将当前环境中的所有数据框合并到一个数据框中,最初我尝试了
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函数,我该怎么办?
答案 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)