[R] Multiple merge, better solution?

markleeds at verizon.net markleeds at verizon.net
Thu Feb 19 11:35:35 CET 2009


Hi: Below is a TOTAL HACK and I don't recommend it but it does seem to 
do what you want. I think that I remember Gabor saying that you can 
merge multiple data frames using zoo but I don't know the specifics. I'm 
sure he'll respond with the correct way. Below uses a global variable 
to access the
dataframe inside the loop and keeps adding on to it. Don't use it unless 
you're really desperate for a solution.

DF <- DF1

for ( .df in list(DF2,DF3,DF4) ) {
   DF<<-merge(DF,.df,by.x="var1", by.y="var1", all=T)
}

print(DF)



On Thu, Feb 19, 2009 at  5:21 AM, Lauri Nikkinen wrote:

> Hello,
>
> My problem is that I would like to merge multiple files with a common
> column but merge accepts only two
> data.frames to merge. In the real situation, I have 26 different
> data.frames with a common column. I can of course use merge many times
> (see below) but what would be more sophisticated solution? For loop?
> Any ideas?
>
> DF1 <- data.frame(var1 = letters[1:5], a = rnorm(5))
> DF2 <- data.frame(var1 = letters[3:7], b = rnorm(5))
> DF3 <- data.frame(var1 = letters[6:10], c = rnorm(5))
> DF4 <- data.frame(var1 = letters[8:12], d = rnorm(5))
>
> g <- merge(DF1, DF2, by.x="var1", by.y="var1", all=T)
> g <- merge(g, DF3, by.x="var1", by.y="var1", all=T)
> merge(g, DF4, by.x="var1", by.y="var1", all=T)
>
> Thanks in advance.
>
> -Lauri
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list