用另一个不规则的时间序列分割时间序列

时间:2014-02-17 14:33:39

标签: r split xts

我试图用一个独特的不规则时间序列分割几个xts对象。 split.xts分为天,分,秒等。使用断点需要相等长度的向量,这在我尝试拆分数据时会产生错误。

dd <- c("2014-02-23","2014-03-12", "2014-05-29")
tt <- c("03:15:52", "03:49:17", "04:03:24", "05:30:19", "05:56:49",
        "06:14:04", "09:42:13", "11:57:25", "11:58:02", "12:12:49",
        "15:38:00", "15:44:21", "16:16:04")
dt <- c(outer(dd,tt,paste))
xx <- as.xts(seq_along(dt), as.POSIXct(dt))
spltr <- c("2014-01-13 12:09:32", "2014-02-09 06:23:41",
           "2014-03-01 13:35:12", "2014-05-14 07:12:52")

我正在尝试将xx拆分为spltr,以查找每件作品中的记录频率。 我尝试aggregate(xx,by=spltr,length),但收到错误,因为spltrxx的长度不同。 split.xts不起作用,因为spltr不常规。

1 个答案:

答案 0 :(得分:3)

首先,将您的xx对象与包含断点的空xts对象合并。

xs <- merge(xx, xts(,as.POSIXct(spltr)))

然后,您可以使用spltr的{​​{1}}参数在xs中找到which.i对象的“端点”。

[.xts

现在,您可以在ep <- c(0,xs[as.POSIXct(spltr),which.i=TRUE]) 对象上使用period.apply(确保处理任何可能的xs)。

NA