On Fri, Nov 15, 2013 at 6:32 AM, Simone Medori <simone.med...@me.com> wrote: > Hi, > I'm triyng to merge two xts time series objects, one of them is from > Return.portfolio (PerformanceAnalytics). > > Despite the merging xts objects have the same indexes, the merged object > shows extra lines at the day before of every entry. > > I noticed that indexes of merging objects have different classes ("POSIXct" > and "Date"): might be this the reason? Why do I get different extra dates > anyway? > Yes, this is the reason. Specifically, the cause is the difference in timezone between the POSIXct index and the Date index.
For some reason, Return.portfolio returns a xts object with a POSIXct index. Convert it to Date and your merge will work. rp <- Return.portfolio(returns) index(rp) <- as.Date(index(rp)) merge(returns,rp) > Kind regards, > > Simone > > >> require(PerformanceAnalytics) >> require(quantmod) >> >> benchmark<-c("^STOXX50E","^NDX") >> downloaded<-getSymbols(benchmark,from=as.Date(Sys.Date()-15)) >> prices <- merge.xts(na.locf(do.call(merge,lapply(downloaded, function(x) >> Cl(get(x)))))) >> returns <- Return.calculate(prices)[-1,] #get rid of first NA >> >> returns >> #STOXX50E.Close NDX.Close >> #2013-11-01 -0.005153278 0.0006009953 >> #2013-11-04 0.000000000 0.0014764362 >> #2013-11-05 -0.005314304 0.0012024522 >> #2013-11-06 0.006745896 -0.0010151026 >> #2013-11-07 -0.004390787 -0.0188959585 >> #2013-11-08 0.000000000 0.0136779259 >> #2013-11-11 0.003236959 -0.0011464756 >> #2013-11-12 -0.005945303 0.0006690495 >> #2013-11-13 -0.004451870 0.0119843220 >> #2013-11-14 0.010764042 0.0028130469 >> >> Return.portfolio(returns) >> # portfolio.returns >> #2013-11-01 -0.0022761415 >> #2013-11-04 0.0007403469 >> #2013-11-05 -0.0020441262 >> #2013-11-06 0.0028386740 >> #2013-11-07 -0.0116652539 >> #2013-11-08 0.0068094113 >> #2013-11-11 0.0010398246 >> #2013-11-12 -0.0026371940 >> #2013-11-13 0.0037957949 >> #2013-11-14 0.0067416934 >> #Warning message: >> # In Return.portfolio(returns) : >> # weighting vector is null, calulating an equal weighted portfolio >> >> merge(returns,Return.portfolio(returns)) >> >> #STOXX50E.Close NDX.Close portfolio.returns >> #2013-10-31 NA NA -0.0022761415 # >> Return.portfolio merges into extra lines! >> #2013-11-01 -0.005153278 0.0006009953 NA >> #2013-11-03 NA NA 0.0007403469 >> #2013-11-04 0.000000000 0.0014764362 NA >> #2013-11-04 NA NA -0.0020441262 >> #2013-11-05 -0.005314304 0.0012024522 NA >> #2013-11-05 NA NA 0.0028386740 >> #2013-11-06 0.006745896 -0.0010151026 NA >> #2013-11-06 NA NA -0.0116652539 >> #2013-11-07 -0.004390787 -0.0188959585 NA >> #2013-11-07 NA NA 0.0068094113 >> #2013-11-08 0.000000000 0.0136779259 NA >> #2013-11-10 NA NA 0.0010398246 >> #2013-11-11 0.003236959 -0.0011464756 NA >> #2013-11-11 NA NA -0.0026371940 >> #2013-11-12 -0.005945303 0.0006690495 NA >> #2013-11-12 NA NA 0.0037957949 >> #2013-11-13 -0.004451870 0.0119843220 NA >> #2013-11-13 NA NA 0.0067416934 >> #2013-11-14 0.010764042 0.0028130469 NA Best, -- Joshua Ulrich | about.me/joshuaulrich FOSS Trading | www.fosstrading.com ______________________________________________ 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.