我试图用一个独特的不规则时间序列分割几个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)
,但收到错误,因为spltr
与xx
的长度不同。 split.xts
不起作用,因为spltr
不常规。
答案 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