i have a bunch of 1 minute data in an xts object with GMT time zone. i call
period.apply (obj, endpoints(obj, "hours"))
and for some reason the time zone of my new object changes to EST/EDT, however, when i do str(obj) it still says time zone is GMT. here is an example:
obj1 <- xts(1:200, order.by=index(ret_1_min_xts)[1:200])
head(obj1)
[,1]
1986-02-04 14:32:00 1
1986-02-04 14:33:00 2
1986-02-04 14:34:00 3
1986-02-04 14:35:00 4
1986-02-04 14:36:00 5
1986-02-04 14:37:00 6
Warning message:
timezone of object (GMT) is different than current timezone ().
now do period.apply
obj2 <- period.apply(obj1, endpoints(obj1, "hours"), mean)
head(obj2)
[,1]
1986-02-04 09:59:00 12.5
1986-02-04 10:59:00 51.0
1986-02-04 11:59:00 103.5
1986-02-04 12:59:00 154.0
1986-02-04 13:26:00 189.5
str(obj1)
An ‘xts’ object from 1986-02-04 14:32:00 to 1986-02-04 18:26:00 containing:
Data: int [1:200, 1] 1 2 3 4 5 6 7 8 9 10 ...
Indexed by objects of class: [POSIXct,POSIXt] TZ: GMT
xts Attributes:
List of 2
$ tclass: chr [1:2] "POSIXct" "POSIXt"
$ tzone : chr "GMT"
str(obj2)
An ‘xts’ object from 1986-02-04 09:59:00 to 1986-02-04 13:26:00 containing:
Data: num [1:5, 1] 12.5 51 103.5 154 189.5
Indexed by objects of class: [POSIXct,POSIXt] TZ:
xts Attributes:
List of 2
$ tclass: chr [1:2] "POSIXct" "POSIXt"
$ tzone : chr "GMT"
This is the big clue
It’s being displayed in your System’s timezone. You can set your System’s timezone like this
Then, your
xtswill be printed with the GMT timezone.