【发布时间】:2022-01-11 18:58:04
【问题描述】:
我希望合并多对数据框。例如,我有以下两组数据框 Con_2014、Con_2015、Con_2016 和收入_2014、收入_2015、收入_2016。所以我想像下面这样一次性合并每一年的数据。
Con_Income_2014 <- merge(Income_2014,Con_2014)
Con_Income_2015 <- merge(Income_2015,Con_2015)
Con_Income_2016 <- merge(Income_2016,Con_2016)`
我尝试了以下方法,但它不起作用。
for (i in 1: length(years)){
assign(paste("Con_Income", as.character(years[i]),sep =""),merge(paste("Income_",as.character(years[i]),sep=""),paste("Cons_",as.character(years[i]),sep="")))}
它运行,但它只给我每对的名称。它的合并字符串(文件名但不是数据)
【问题讨论】:
-
您能否使用
dput提供一组最小的数据框? -
看看
get()函数。它允许您通过字符名称来调用变量。顺便说一句,您不必将as.character()用于整数。R默认转成字符。 -
@Albin,不,这没有多大帮助。如果我是对的,他们会将多个文件合并到一个文件中,在我的情况下,我想合并两个文件,然后合并另外两个文件并继续处理其他文件对。所以这里会有多个输出合并文件,在这种情况下,只有一个输出合并文件。
-
结合Albin的优秀链接,见How to make a list of data frames。将所有数据框放在
list中将使您想做的任何操作都变得更加容易。例如,如果您有一个con列表和一个income列表,您将使用con_income = mapply(merge, con, income)来获取结果列表。