gpt4 book ai didi

r - to.minutes 使用自定义端点

转载 作者:行者123 更新时间:2023-12-04 17:24:23 28 4
gpt4 key购买 nike

我正在使用从上午 9:50 开始的日内数据,并希望将其转换为 20 分钟的时间间隔,因此第一个时间段为 09:50 至 10:09:59,第二个时间段为 10: 10 到 10:29:59 等。但是 to.minutes()来自 xts包似乎将其固定在小时上,并且在 09:59:59 和 10:19:59 等处有时间条......即它是 10 分钟后......我知道它可能不是一个常规请求......但无论如何这样做以便它具有正确的端点,即基于第一个时间戳?

对于奖励积分......有没有办法根据最终时间戳来做到这一点? (即生成从该时间戳倒退的周期端点?

这是我关于 10 分钟后的观点的说明(从我想要的开始)

x <- xts(rnorm(24*60*60), as.POSIXct(format(paste(Sys.Date(),'09:50')))-((24*60*60):1))
head(x)
x1 <- to.minutes(x, 20)
head(x1)

我可以想出一种通过使用拆分、剪切、lapplys do.calls 和 rbinds 来纠正这个问题的方法......但我基本上会重新创建一个 OHLC 对象......并且觉得它与现有的相比可能效率低下解决方案...

最佳答案

这是一个有用的技巧,可能应该在 xts 文档中更加突出。

xts 开始目的

R> set.seed(42)   ## fix seed
R> X <- xts(cumsum(rnorm(100))+100, order.by=Sys.time()+cumsum(runif(100)))
R> head(X)
[,1]
2012-10-05 06:42:20.299761 101.371
2012-10-05 06:42:20.816872 100.806
2012-10-05 06:42:21.668803 101.169
2012-10-05 06:42:22.111599 101.802
2012-10-05 06:42:22.269479 102.207
2012-10-05 06:42:22.711804 102.100

鉴于这个不规则系列,我们希望以我们施加的规则间隔进行子集化。在这里,我创建了一个两秒的间隔。如果它与索引的类型相同,任何其他都可以工作,这里是 POSIXct .
R> ind <- seq(start(X) - as.numeric(start(X)-round(start(X))) + 1, 
+ end(X), by="2 secs")
R> head(ind)
[1] "2012-10-05 06:42:21 CDT" "2012-10-05 06:42:23 CDT"
[3] "2012-10-05 06:42:25 CDT" "2012-10-05 06:42:27 CDT"
[5] "2012-10-05 06:42:29 CDT" "2012-10-05 06:42:31 CDT"
R>

现在的诀窍是将规则系列与不规则系列合并,请调用 na.locf()在它上面调用最后一个好的不规则 obs 到新的时间网格上——然后在时间网格上进行子集:
R> na.locf(merge(X, xts(,ind)))[ind]
X
2012-10-05 06:42:21 100.8063
2012-10-05 06:42:23 102.1004
2012-10-05 06:42:25 105.4730
2012-10-05 06:42:27 107.2635
2012-10-05 06:42:29 104.9588
2012-10-05 06:42:31 101.7505
2012-10-05 06:42:33 104.6884
2012-10-05 06:42:35 103.6441
2012-10-05 06:42:37 101.6476
2012-10-05 06:42:39 98.6246
2012-10-05 06:42:41 97.9922
2012-10-05 06:42:43 97.7545
2012-10-05 06:42:45 101.0187
2012-10-05 06:42:47 98.0331
2012-10-05 06:42:49 100.7752
2012-10-05 06:42:51 103.0702
2012-10-05 06:42:53 102.6578
2012-10-05 06:42:55 103.1342
2012-10-05 06:42:57 103.4714
2012-10-05 06:42:59 102.3683
2012-10-05 06:43:01 105.0394
2012-10-05 06:43:03 103.9775
R>

瞧。

关于r - to.minutes 使用自定义端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12740851/

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