将全局环境中的多个数据框合并成一个文件。

5
我在全局环境中有四个数据框,它们的名称是propens1、propens2、propens3和propens4。我有第五个文件,名为"bmi",我想将bmi与所有四个propen文件合并。我可以使用dplyr连接或基本合并逐个合并它们,但我想知道是否有一种方法可以使用单个语句将它们合并而不是四个语句。
这是我尝试过的,但它没有起作用?欢迎并感激任何建议。
flist=ls(pattern="propen")
sapply(flist,function(x){merge(x,bmi,by="cfact",all.x=T)})
1个回答

7
如果您有多个相关的数据框,最好将它们全部放在一个列表中,而不是将它们分开放在全局环境中。根据您的说法,它们的名称为propens1、propens2、propens3和propens4,我们可以使用以下代码将所有数据框收集到一个列表中:
datalist <- mget(ls(pattern = "propens[1-4]"))

那么既然你想要结果中有四个数据框,我们只需要在每个数据框上运行merge()。现在我们已经将这些数据框放入列表中,可以使用lapply()轻松完成此操作。

lapply(datalist, merge, y = bmi, by = "cfact", all.x = TRUE)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接