Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R XTS to.minutes5(),未转换为;我";预期_R_Xts - Fatal编程技术网

R XTS to.minutes5(),未转换为;我";预期

R XTS to.minutes5(),未转换为;我";预期,r,xts,R,Xts,嗨,我正在将一些1分钟的数据转换成5分钟的数据,我发现第一次增量需要4分钟,然后再继续进行5分钟的增量 我尝试过摆弄所有的“指数化”参数,但没有一个能给我我想要的,从5开始,然后是10、15、20等等 我试过了 x5 <- to.minutes5(x) 转换为5分钟后 clemtest.Open clemtest.High clemtest.Low clemtest.Close clemtest.Volume 2013-01-16 00:04:00

嗨,我正在将一些1分钟的数据转换成5分钟的数据,我发现第一次增量需要4分钟,然后再继续进行5分钟的增量

我尝试过摆弄所有的“指数化”参数,但没有一个能给我我想要的,从5开始,然后是10、15、20等等

我试过了

x5 <- to.minutes5(x)
转换为5分钟后

                    clemtest.Open clemtest.High clemtest.Low clemtest.Close clemtest.Volume
2013-01-16 00:04:00         93.55         93.60        93.54          93.57              27
2013-01-16 00:09:00         93.57         93.57        93.55          93.56              33
2013-01-16 00:14:00         93.56         93.57        93.56          93.57               8
2013-01-16 00:19:00         93.56         93.58        93.51          93.53              77
2013-01-16 00:24:00         93.53         93.55        93.49          93.49             121
2013-01-16 00:29:00         93.49         93.51        93.49          93.51             121
计算是正确的,它不是从前5分钟的数据开始,而是从4分钟开始,然后继续到5分钟

(使用indexAt='startof'给出了正确的,5,10,15…但当检查棒时,5分钟数据表示5分钟的开始(例如5-10分钟),而不是0-5分钟)

以下是1分钟数据的尾部,以供参考

                         Open  High   Low Close Volume
2013-01-17 23:53:00 95.52 95.52 95.52 95.52      2
2013-01-17 23:55:00 95.51 95.52 95.51 95.52      2
2013-01-17 23:56:00 95.51 95.51 95.51 95.51      1
2013-01-17 23:57:00 95.52 95.52 95.52 95.52      1
2013-01-17 23:59:00 95.52 95.52 95.51 95.51      4
2013-01-18 00:00:00 95.51 95.51 95.51 95.51      8

这就是你想要的吗(只用12分钟的数据,因为这就是你发布的全部)


x
到.period
(因此
到.minutes
到.minutes5
等)使用每个间隔的
端点来聚合数据。数据前5分钟的最后一次观察是在00:04:00,这就是您看到的。00:05:00是零小时内第二个5分钟间隔的开始。您可以添加一些关于为什么要这样做的详细信息吗?看看library(highfrequency)包,它们有一个名为aggregates()的函数,这可能就是您想要的@用户1736644Hi Joshua,我之所以要这样做是因为:我在多个时间范围内工作,滴答声,5分钟和60分钟都在同一个策略中。我希望第12个5分钟酒吧的结尾与60分钟酒吧相匹配。但是如果我得到4,9,14个小节,它就不匹配了。我希望第一个5分钟酒吧的收盘时间等于第五个1分钟酒吧的收盘时间,在这种情况下,第五个1分钟酒吧的收盘时间是93.70,因此我希望第一个5分钟酒吧的收盘时间是93.70,时间戳是00:05:00。(如果我查看00:00:00-00:04:59的刻度数据,它从93.55开始,在93.70结束)。谢谢如果你注意到音量,一天的前5分钟是从00:00:00到00:05:00,因此前5分钟的音量应该是5+5+5+12+21(48),如果有帮助的话,我还将1分钟数据的尾部添加到原始问题中
                    clemtest.Open clemtest.High clemtest.Low clemtest.Close clemtest.Volume
2013-01-16 00:04:00         93.55         93.60        93.54          93.57              27
2013-01-16 00:09:00         93.57         93.57        93.55          93.56              33
2013-01-16 00:14:00         93.56         93.57        93.56          93.57               8
2013-01-16 00:19:00         93.56         93.58        93.51          93.53              77
2013-01-16 00:24:00         93.53         93.55        93.49          93.49             121
2013-01-16 00:29:00         93.49         93.51        93.49          93.51             121
                         Open  High   Low Close Volume
2013-01-17 23:53:00 95.52 95.52 95.52 95.52      2
2013-01-17 23:55:00 95.51 95.52 95.51 95.52      2
2013-01-17 23:56:00 95.51 95.51 95.51 95.51      1
2013-01-17 23:57:00 95.52 95.52 95.52 95.52      1
2013-01-17 23:59:00 95.52 95.52 95.51 95.51      4
2013-01-18 00:00:00 95.51 95.51 95.51 95.51      8
x <- read.table(text ="
2013-01-16 00:01:00 93.55 93.60 93.54 93.58      5
2013-01-16 00:02:00 93.59 93.60 93.58 93.58      5
2013-01-16 00:03:00 93.59 93.60 93.58 93.58      5
2013-01-16 00:04:00 93.58 93.58 93.57 93.57     12
2013-01-16 00:05:00 93.57 93.57 93.55 93.70     21
2013-01-16 00:06:00 93.56 93.56 93.56 93.56      5
2013-01-16 00:07:00 93.56 93.56 93.55 93.55      3
2013-01-16 00:08:00 93.55 93.55 93.55 93.55      2
2013-01-16 00:09:00 93.55 93.56 93.55 93.56      2
2013-01-16 00:10:00 93.56 93.56 93.56 93.56      1
2013-01-16 00:11:00 93.57 93.57 93.57 93.57      3")

colnames(x) <- c("Date", "time",  "Open",  "High",   "Low", "Close", "Volume")


xt <- xts(x[, 3:7], order.by = as.POSIXct(paste0(x$Date, x$time, " ")) - 0.000001)



xt5 <- to.period(xt, period = "minutes", k =5)
xt5 <- align.time(xt5, n = 300)
xt5

#                     xt.Open xt.High xt.Low xt.Close xt.Volume
# 2013-01-16 00:05:00   93.55   93.60  93.54    93.70        48
# 2013-01-16 00:10:00   93.56   93.56  93.55    93.56        13
# 2013-01-16 00:15:00   93.57   93.57  93.57    93.57         3