Hi Gabor and Duncan, Thanks for your comments. As Gabor points out, Duncan's suggestion does not work. For those interested, here is some minimal reproducible example to illustrate
library(xts) dtV <- as.Date("2019-01-01")+1:5 a <- xts(x=rnorm(5),order.by=dtV) a1 <- a[1:3,] a2 <- a[2:4,] a3 <- a[3:5,] colnames(a1) <- "a1" colnames(a2) <- "a2" colnames(a3) <- "a3" L <- list(a1,a2,a3) b.outer.1 <- Reduce(merge.xts,L) b.outer.2 <- do.call(merge.xts,L) identical(b.outer.1,b.outer.2) # TRUE dim(b.outer.1) # [1] 5 3 b.left.1 <- merge.xts( merge.xts(a1,a2,join="left"), a3, join="left" ) f <- function(x,y) { merge.xts(x,y,join="left")} b.left.2 <- Reduce(f,L) identical(b.left.1,b.left.2) # TRUE dim(b.left.1) # [1] 3 3 b.left.3 <- do.call("merge",c(L,join="left")) # Warning message: # In merge.xts(c(0.316095105296857, -1.69318390538755, -1.16430042971811 : # 'join' only applicable to two object merges dim(b.left.3) # [1] 5 3 identical(b.outer.1,b.left.3) # TRUE On Thu, Jan 2, 2020 at 11:39 PM Gabor Grothendieck <ggrothendi...@gmail.com> wrote: > > join = "left" only applies with merge.xts if there are two objects. > If there are more it acts the same as join = TRUE.. > See the Details section of ?merge.xts > > On Thu, Jan 2, 2020 at 1:29 PM Duncan Murdoch <murdoch.dun...@gmail.com> > wrote: > > > > On 02/01/2020 9:31 a.m., Eric Berger wrote: > > > Hi Gabor, > > > This is great, thanks. It brought the time down to about 4 seconds. > > > The command > > > do.call("merge.xts",L) > > > also works in this case. > > > Suppose that instead of the default "outer" join I wanted to use, say, a > > > "left" join. > > > Is that possible? I tried a few ways of adding the > > > join="left" > > > parameter to the do.call() command but I could not get the syntax to work > > > (assuming it's even possible). > > > > This should work: > > > > do.call("merge", c(L, join = "left")) > > > > The second argument to do.call is a list which becomes the arguments to > > the function being called. Your time series should be unnamed entries > > in the list, while other arguments to merge() should be named. > > > > Duncan Murdoch > > > > > > > > Thanks, > > > Eric > > > > > > > > > On Thu, Jan 2, 2020 at 3:23 PM Gabor Grothendieck > > > <ggrothendi...@gmail.com> > > > wrote: > > > > > >> You don't need Reduce as xts already supports mutliway merges. This > > >> perfroms one > > >> multiway merge rather than k-1 two way merges. > > >> > > >> do.call("merge", L) > > >> > > >> On Thu, Jan 2, 2020 at 6:13 AM Eric Berger <ericjber...@gmail.com> wrote: > > >>> > > >>> Hi, > > >>> I have a list L of about 2,600 xts's. > > >>> Each xts has a single numeric column. About 90% of the xts's have > > >>> approximately 500 rows, and the rest have fewer than 500 rows. > > >>> I create a single xts using the command > > >>> > > >>> myXts <- Reduce( merge.xts, L ) > > >>> > > >>> By default, merge.xts() does an outer join (which is what I want). > > >>> > > >>> The command takes about 80 seconds to complete. > > >>> I have plenty of RAM on my computer. > > >>> > > >>> Are there faster ways to accomplish this task? > > >>> > > >>> Thanks, > > >>> Eric > > >>> > > >>> [[alternative HTML version deleted]] > > >>> > > >>> ______________________________________________ > > >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > >>> 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. > > >> > > >> > > >> > > >> -- > > >> Statistics & Software Consulting > > >> GKX Group, GKX Associates Inc. > > >> tel: 1-877-GKX-GROUP > > >> email: ggrothendieck at gmail.com > > >> > > > > > > [[alternative HTML version deleted]] > > > > > > ______________________________________________ > > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > > 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. > > > > > > > > -- > Statistics & Software Consulting > GKX Group, GKX Associates Inc. > tel: 1-877-GKX-GROUP > email: ggrothendieck at gmail.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.