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