This will do it: > merge(A, B, by = 1, all = TRUE) Date Value.x Value.y 1 03/15/10 1 5 2 04/15/10 2 5 3 05/15/10 3 NA 4 06/15/10 NA 5
but you probably really want to be using time series for this so that you can easily perform other operations too. See ?merge.zoo and the three zoo vignettes for more. > library(zoo) > library(chron) > za <- zoo(A$Value, chron(as.character(A$Date))) > zb <- zoo(B$Value, chron(as.character(B$Date))) > merge(za, zb) za zb 03/15/10 1 5 04/15/10 2 5 05/15/10 3 NA 06/15/10 NA 5 > zm <- merge(za, zb) > # convert to data frame > cbind(Date = time(zm), as.data.frame(zm)) Date za zb 03/15/10 03/15/10 1 5 04/15/10 04/15/10 2 5 05/15/10 05/15/10 3 NA 06/15/10 06/15/10 NA 5 > # handle more than two at a time > merge(za, za2 = za, zb) za za2 zb 03/15/10 1 1 5 04/15/10 2 2 5 05/15/10 3 3 NA 06/15/10 NA NA 5 > # same but series are in a list > do.call(merge, list(za = za, za2 = za, zb = zb)) za za2 zb 03/15/10 1 1 5 04/15/10 2 2 5 05/15/10 3 3 NA 06/15/10 NA NA 5 On Tue, Mar 9, 2010 at 11:21 AM, Daniel Brewer <daniel.bre...@icr.ac.uk> wrote: > Hello, > > I have for a long list of data.frames that I would like to get merged. > Each data.frame have two columns with the same names (Date and Value). > What I would like is for the objects in the list to be merged on Only > date with the column header being the name in the list. > > For example > > A <- data.frame(Date=c("03/15/10","04/15/10","05/15/10"), > Value=c(1,2,3)) > B <- data.frame(Date=c("03/15/10","04/15/10","06/15/10"), > Value=c(5,5,5)) > ... > > yoda <- list(A=A,B=B,...) > > Result: > > Date A B C > 03/15/10 1 5 ... > 04/15/10 2 5 > 05/15/10 3 NA > 06/15/10 NA 5 > > Any ideas? I have been fiddling around with plyr and reshape without success > > Thanks > > Dan > > -- > ************************************************************** > > Daniel Brewer, Ph.D. > > Institute of Cancer Research > Molecular Carcinogenesis > MUCRC > 15 Cotswold Road > Sutton, Surrey SM2 5NG > United Kingdom > > Tel: +44 (0) 20 8722 4109 > > ************************************************************** > > The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company > Limited by Guarantee, Registered in England under Company No. 534147 with its > Registered Office at 123 Old Brompton Road, London SW7 3RP. > > This e-mail message is confidential and for use by the a...{{dropped:2}} > > ______________________________________________ > 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. > ______________________________________________ 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.