2

xts我在GMT 时区的对象中有一堆 1 分钟的数据。我打电话

period.apply (obj, endpoints(obj, "hours"))

并且由于某种原因,我的新对象的时区更改为 EST/EDT,但是,当我这样做时,str(obj)它仍然说时区是 GMT。这是一个例子:

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 (). 

现在做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"
4

1 回答 1

3

这是大线索

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

它显示在您系统的时区中。您可以像这样设置系统的时区

Sys.setenv(TZ="GMT")

然后,您xts将使用 GMT 时区打印。

于 2012-08-09T19:35:19.533 回答