R:合并多对数据帧

时间:2016-01-18 04:59:34

标签: r

我在与R面临一个非常小的问题。然而,之前在论坛上的研究并没有产生任何积极的发现。

具体来说,我有一份作者及其出版物清单,以及与其出版物有关的进一步行政数据。管理数据与其发布匹配的唯一列位于两个数据集的第2列中。

因此,我在下面编写了以下代码,以便将每位作者的独特管理数据与其出版物相匹配:

for (file in file_list) {
XX <- read.csv(paste(file,"_Dets.csv",sep=""))
YY <- read.csv(paste(file,"_Cits.csv",sep=""))
file <- merge(XX, YY, by = 2:2, all = F)
  }

不幸的是,我没有产生N个输出,而是发现在这种情况下,“文件”在每个循环中被重复覆盖。我该如何解决这个问题?

我在Mac上使用最新版本的R。

file_list如下所示:

[1] "Weils_Raymond"
[2] "Lucas_George"
...
[30] "Clinton_Peel"

1 个答案:

答案 0 :(得分:0)

我们可以将Map用于此目的,因为它将遍历每个相应的元素,然后执行merge。如果OP显示file_list中的内容会更好。

 Map(function(x,y) merge(x,y, by.x = names(x)[2], by.y=names(y)[2]), 
   lapply(paste0(files_list, "_Dets.csv"), read.csv, 
                   stringsAsFactors=FALSE),
   lapply(paste0(files_list, "_Cits.csv"), read.csv, 
                   stringsAsFactors=FALSE))