我有一个基本文件,如下所示:
ID x1
1 5
2 20
3 14
4 8
5 20
我有1.000个单独的文件,每个文件都包含额外的变量。 2个例子是:
ID x2
1 45
2 85
3 42
7 52
8 41
ID x2
10 54
12 4
4 7
5 21
我想得到它:
ID x1 x2
1 5 45
2 20 85
3 14 42
4 8 7
5 20 21
我只想在" mydata"中添加匹配的ID。我最初尝试将所有单独的文件合并为1个单个文件然后合并,但是大小太大。我也尝试合并循环,但这会不断添加新的变量。关于如何合并这个的任何建议?
答案 0 :(得分:1)
根据您阅读解决方案的方式,您的数据会略有不同。
但是,您可以使用apply读取大量文件,并将它们分配给不同级别的列表。
files.list = list()
sapply(c(1:100), function(x){files.list[[x]] = read.csv(file = paste0("file_",x,".csv"))})
然后列表中的每个对象都是一个data.frame,您可以使用这个优秀的答案:
merged.data.frame = Reduce(function(...) merge(..., all=T), files.list)
答案 1 :(得分:0)
这可能是什么?
m1 <- merge(baseTab, tab2, by = "ID")
# Loop through datasets start here
for (tabName in tabList) {
m2 <- merge(baseTab, tabName, by = "ID")
m1 <- rbind(m1, m2)
}
# and ends here