gpt4 book ai didi

r - 将时间序列拆分为另一个不规则时间序列

转载 作者:行者123 更新时间:2023-12-02 00:00:16 26 4
gpt4 key购买 nike

我试图用一个独特的不规则时间序列拆分多个 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 不规则。

最佳答案

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

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

然后您可以通过使用which.i参数在xs中找到spltr对象的“端点” .xts.

ep <- c(0,xs[as.POSIXct(spltr),which.i=TRUE])

现在您可以在 xs 对象上使用 period.apply(确保处理任何潜在的 NA)。

> period.apply(xs, ep, function(x) nrow(na.omit(x)))
xx
2014-01-13 12:09:32 0
2014-02-09 06:23:41 0
2014-03-01 13:35:12 13
2014-05-14 07:12:52 13

关于r - 将时间序列拆分为另一个不规则时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21831745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com