Hi, On Wed, Feb 9, 2011 at 11:18 PM, Benjamin Caldwell <btcaldw...@berkeley.edu> wrote: > So I needed to merge 17 .csv files, and did so by brute force, but I might > need to do so again. Anyone have suggestions for a for loop that might do > the below for me (where a:r are separate .csv files) > > ab<-merge(a,b,all=TRUE) > cd<-merge(c,d,all=TRUE) > ef<-merge(e,f,all=TRUE) > gh<-merge(g,h,all=TRUE) > ij<-merge(i,j,all=TRUE) > kl<-merge(k,l,all=TRUE) > no<-merge(m,n,all=TRUE) > pq<-merge(p,q,all=TRUE) > abcd<-merge(ab,cd,all=TRUE) > efgh<-merge(ef,gh,all=TRUE) > ijkl<-merge(ij,kl,all=TRUE) > nopq<-merge(no,pq,all=TRUE) > ah<-merge(abcd,efgh,all=TRUE) > iq<-merge(ijkl,nopq,all=TRUE) > aq<-merge(ah,iq,all=TRUE) > all<-merge(aq,r,all=TRUE) > > write.csv(all,file="all.merged.csv")
Imagine you had the names of the csv's in a vector named `files`. Perhaps something along these lines would work: R> mergef <- function(x, y) merge(x, y, all=TRUE) R> dfs <- lapply(files, read.csv) R> all.dfs <- Reduce(mergef, dfs) Haven't tested it, but maybe you can give it a whirl and tweak it some until it works. -- Steve Lianoglou Graduate Student: Computational Systems Biology | Memorial Sloan-Kettering Cancer Center | Weill Medical College of Cornell University Contact Info: http://cbio.mskcc.org/~lianos/contact ______________________________________________ R-help@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.