9
同时合并列表中的多个数据框
我有许多要合并的data.frames的列表。这里的问题是,每个data.frame不同的行数和列数的条款,但他们都有着关键变量(我打过电话"var1",并"var2"在下面的代码)。如果data.frames在列方面是相同的,我只能这样做rbind,而plyr的rbind.fill将为此工作,但这些数据并非如此。 由于该merge命令仅适用于2个data.frames,因此我转向Internet寻求想法。我从这里得到了这个,它在R 2.7.2中可以完美运行,这就是我当时的情况: merge.rec <- function(.list, ...){ if(length(.list)==1) return(.list[[1]]) Recall(c(list(merge(.list[[1]], .list[[2]], ...)), .list[-(1:2)]), ...) } 我会这样调用该函数: df <- merge.rec(my.list, by.x = c("var1", "var2"), by.y = c("var1", "var2"), all = T, suffixes=c("", "")) 但是在2.7.2之后的任何R版本中,包括2.11和2.12,此代码都会失败,并出现以下错误: Error in match.names(clabs, names(xi)) : names do not match previous names (顺便说一句,我在其他地方看到了对此错误的其他参考,没有解决方法)。 有什么办法可以解决这个问题?