2012-08-09 35 views
2

我有一堆在GMT時區的xts對象中的1分鐘數據。我叫時區,在xts period.apply使用R

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" 

回答

3

這是大線索

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

它顯示在您的系統的時區。您可以設置系統的時區像這樣

Sys.setenv(TZ="GMT") 

然後,您xts將印有GMT時區。

+0

啊,理解。謝謝!新時區:) – Alex 2012-08-09 19:36:34