有没有一种方法可以在特定时间点拆分xts时间序列对象

时间:2020-11-09 17:54:44

标签: r time-series xts

我正在尝试拆分特定年份跨越35年的石油价格的时间序列数据。例如,将直到2018年的所有数据归为一个系列,之后将数据归为另一个系列。我可以使用split()函数来做同样的事情吗?有关以下时间序列的更多详细信息。

 > str(myxts)
  An ‘xts’ object on 1986-01-15/2020-09-15 containing:
  Data: num [1:417, 1] 22.9 15.5 12.6 12.8 15.4 ...
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  

谢谢。

1 个答案:

答案 0 :(得分:0)

这将创建一个从2000/1/1到2002/9/26的xts对象,然后将其分解为2000年底之前的所有内容以及2001年之后的所有内容。

tt <- seq(as.Date("2000-01-01"), by = "day", length = 1000)
x <- xts(seq_along(tt), tt)
range(time(x))
## [1] "2000-01-01" "2002-09-26"

s <- split(x, as.yearmon(time(x)) >= 2001)

range(time(s[[1]]))
## [1] "2000-01-01" "2000-12-31"

range(time(s[[2]]))
## [1] "2001-01-01" "2002-09-26"