R 合并多个数据帧的列表

R 合并多个数据帧的列表,r,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....)) 但是为什么最初的尝试不起作用呢 两者 返回类型“列表” 如果有太多数据帧无法全部输入Reduce函数,我该怎么办?试试以下方

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

Reduce(function(x,y) merge(x,y,by="Date"),list(ls()))
但这不起作用,只返回数据帧名称列表

我知道如果我这样做,它会起作用的

Reduce(function(x,y) merge(x,y,by="Date"),list(df1,df2,df3....))
但是为什么最初的尝试不起作用呢

两者

返回类型“列表”

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

试试以下方法:

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

您可以尝试
mget(ls())
instead@docendodiscimus这只是在名字列表中增加了一个额外的索引级别。这很奇怪。你能告诉我你到底是怎么尝试的吗?@docendodiscimus这正是我写的,第一个示例只是返回了一个所有数据帧名称的列表。你不能将data.frame存储在一个列表中,而不是在全局环境中有几个变量?
lst = lapply(Filter(function(x) class(get(x))=='data.frame', ls(env=globalenv())), get)
Reduce(function(x,y) merge(x,y,by="Date"),lst)