1. 程式人生 > >R-xts()時間序列

R-xts()時間序列

xts()

1. 所屬包:xts

> install.packages("xts")

> library(xts)
載入需要的程輯包:zoo

載入程輯包:‘zoo’

下列物件被遮蔽了from ‘package:base’:

    as.Date, as.Date.numeric

Warning message:
程輯包‘xts’是用R版本3.0.2 來建造的 

2. 格式:xts(時間序列資料,時間標籤)

時間標籤可以是:POSIXct/POSIXlt,Date型別

舉例:

x<-xts(rnorm(3),as.Date(c("2013-11-28","2013-11-29","2013-12-01")))

> x
                 [,1]
2013-11-28  1.1922452
2013-11-29 -0.1615097
2013-12-01 -0.3044760

>x2<-xts(rnorm(100),seq(as.POSIXct("2013-11-28"),len=100,by="min"))

> x2[1:5]
                           [,1]
2013-11-28 00:00:00 -1.13243645
2013-11-28 00:01:00  0.04929416
2013-11-28 00:02:00 -0.10205631
2013-11-28 00:03:00  0.69648892
2013-11-28 00:04:00 -0.41507201

3. 索引

如果上面的x,x2去掉時間標籤,那這些時間序列物件可以像“正常”物件一樣進行索引(標準的向量子集)。

我們經常需要基於與時間有關的條件來獲取這些序列的子集,如下:

> x2[as.POSIXct("2013-11-28 00:01:00")]
                          [,1]
2013-11-28 00:01:00 0.04929416
> x[as.Date('2013-11-29')]
                 [,1]
2013-11-29 -0.1615097

或者直接:

> x2["2013-11-28 00:01:00"]
                          [,1]
2013-11-28 00:01:00 0.04929416

> x['2013-11-29']
                 [,1]
2013-11-29 -0.1615097

索引某時間標籤開始的時間段: “開始時間/”

> x['2013-11-28/']
                 [,1]
2013-11-28  1.1922452
2013-11-29 -0.1615097
2013-12-01 -0.3044760
> x['2013-11-29/']
                 [,1]
2013-11-29 -0.1615097
2013-12-01 -0.3044760

索引某時間標籤結束的時間段: “/結束時間”

> x['/2013-11-29']
                 [,1]
2013-11-28  1.1922452
2013-11-29 -0.1615097

索引某兩時間標籤中間的時間段: “開始時間/結束時間”

> x['2013-11-28/2013-11-29']
                 [,1]
2013-11-28  1.1922452
2013-11-29 -0.1615097
> x2["2013-11-28 00:01:00/2013-11-28 00:06:00"]
                           [,1]
2013-11-28 00:01:00  0.04929416
2013-11-28 00:02:00 -0.10205631
2013-11-28 00:03:00  0.69648892
2013-11-28 00:04:00 -0.41507201
2013-11-28 00:05:00 -1.12666558
2013-11-28 00:06:00 -0.15757190