我在与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"
答案 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))