Christofer Bogaso
2018-Jul-09 10:22 UTC
[R] Zoo changing time-zone when I merge 2 zoo time series
Hi, Below is my code : library(zoo) Dat1 = structure(c(17890, 17770.01, 17600, 17593, 17630.01), index structure(c(1512664740, 1512664800, 1512664860, 1512664920, 1512664980), class = c("POSIXct", "POSIXt"), tzone = "America/Los_Angeles"), class = "zoo") Dat2 = structure(c(15804.28, 15720.61, 15770, 15750, 15770), index structure(c(1512664740, 1512664800, 1512664860, 1512664920, 1512664980), class = c("POSIXct", "POSIXt"), tzone = "America/Los_Angeles"), class = "zoo") merge(Dat1, Dat2) Dat1 Dat2 2017-12-07 22:09:00 17890.00 15804.28 2017-12-07 22:10:00 17770.01 15720.61 2017-12-07 22:11:00 17600.00 15770.00 2017-12-07 22:12:00 17593.00 15750.00 2017-12-07 22:13:00 17630.01 15770.00 So, after merging the TZ of the original series got changed. Appreciate if someone points what went wrong [[alternative HTML version deleted]]
Eric Berger
2018-Jul-09 12:19 UTC
[R] Zoo changing time-zone when I merge 2 zoo time series
I found the following at https://stackoverflow.com/questions/25269425/merge-zoo-removes-time-zone library(xts) merge2=function(x,y) { as.zoo(merge(as.xts(x), as.xts(y)))} If you define the function merge2() as above then merge2(Dat1,Dat2) should be ok HTH, Eric On Mon, Jul 9, 2018 at 1:22 PM, Christofer Bogaso < bogaso.christofer at gmail.com> wrote:> Hi, > > Below is my code : > > library(zoo) > Dat1 = structure(c(17890, 17770.01, 17600, 17593, 17630.01), index > structure(c(1512664740, > 1512664800, 1512664860, 1512664920, 1512664980), class = c("POSIXct", > "POSIXt"), tzone = "America/Los_Angeles"), class = "zoo") > Dat2 = structure(c(15804.28, 15720.61, 15770, 15750, 15770), index > structure(c(1512664740, > 1512664800, 1512664860, 1512664920, 1512664980), class = c("POSIXct", > "POSIXt"), tzone = "America/Los_Angeles"), class = "zoo") > > merge(Dat1, Dat2) > > Dat1 Dat2 > 2017-12-07 22:09:00 17890.00 15804.28 > 2017-12-07 22:10:00 17770.01 15720.61 > 2017-12-07 22:11:00 17600.00 15770.00 > 2017-12-07 22:12:00 17593.00 15750.00 > 2017-12-07 22:13:00 17630.01 15770.00 > > > So, after merging the TZ of the original series got changed. > > Appreciate if someone points what went wrong > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >[[alternative HTML version deleted]]
Enrico Schumann
2018-Jul-19 06:55 UTC
[R] Zoo changing time-zone when I merge 2 zoo time series
On Mon, 09 Jul 2018, Christofer Bogaso writes:> Hi, > > Below is my code : > > library(zoo) > Dat1 = structure(c(17890, 17770.01, 17600, 17593, 17630.01), index > structure(c(1512664740, > 1512664800, 1512664860, 1512664920, 1512664980), class = c("POSIXct", > "POSIXt"), tzone = "America/Los_Angeles"), class = "zoo") > Dat2 = structure(c(15804.28, 15720.61, 15770, 15750, 15770), index > structure(c(1512664740, > 1512664800, 1512664860, 1512664920, 1512664980), class = c("POSIXct", > "POSIXt"), tzone = "America/Los_Angeles"), class = "zoo") > > merge(Dat1, Dat2) > > Dat1 Dat2 > 2017-12-07 22:09:00 17890.00 15804.28 > 2017-12-07 22:10:00 17770.01 15720.61 > 2017-12-07 22:11:00 17600.00 15770.00 > 2017-12-07 22:12:00 17593.00 15750.00 > 2017-12-07 22:13:00 17630.01 15770.00 > > > So, after merging the TZ of the original series got changed. > > Appreciate if someone points what went wrong >Nothing went wrong. Only 'merge.zoo' drops the time-zone attribute. But note that it did not change the actual times: unclass(index(Dat1)) ## [1] 1512664740 1512664800 1512664860 1512664920 1512664980 ## attr(,"tzone") ## [1] "America/Los_Angeles" unclass(index(merge(Dat1, Dat2))) ## [1] 1512664740 1512664800 1512664860 1512664920 1512664980 all(unclass(index(Dat1)) == unclass(index(merge(Dat1, Dat2)))) ## [1] TRUE M <- merge(Dat1, Dat2) attr(index(M), "tzone") <- attr(index(Dat1), "tzone") M ## Dat1 Dat2 ## 2017-12-07 08:39:00 17890.00 15804.28 ## 2017-12-07 08:40:00 17770.01 15720.61 ## 2017-12-07 08:41:00 17600.00 15770.00 ## 2017-12-07 08:42:00 17593.00 15750.00 ## 2017-12-07 08:43:00 17630.01 15770.00 See Ripley, B. D. and Hornik, K. (2001) Date-time classes. R News, 1/2, 8?11. https://www.r-project.org/doc/Rnews/Rnews_2001-2.pdf -- Enrico Schumann Lucerne, Switzerland http://enricoschumann.net