Alex
Alex

Reputation: 19803

time zone, period.apply in xts using R

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"

Upvotes: 2

Views: 1503

Answers (1)

GSee
GSee

Reputation: 49810

This is the big clue

Warning message:
  timezone of object (GMT) is different than current timezone ()

It's being displayed in your System's timezone. You can set your System's timezone like this

Sys.setenv(TZ="GMT")

Then, your xts will be printed with the GMT timezone.

Upvotes: 3

Related Questions