我有一个单变量时间系列对象,为了使用聚合函数()函数,我将其转换为xts对象。这是它的样子:R:在聚合后更改xts对象的时区
> head(B, 20)
[,1]
2015-09-16 09:16:00 1
2015-09-16 09:16:26 1
2015-09-16 09:16:46 1
2015-09-16 09:17:28 -1
2015-09-16 09:19:17 1
2015-09-16 09:22:06 -1
时区是“IST”(印度标准时间),因为它正确显示在上面。当我在其上运行聚合函数时,它将时区更改为“GMT”。我需要它留在“IST”中,因为我需要比较“IST”时区中的其他变量。它还显示一条警告消息:我也尝试通过indexTZ()函数手动更改时区,但这也没有帮助。
> indexTZ(C)<- "IST"
> head(C)
ts3
2015-09-16 03:47:00 3
2015-09-16 03:48:00 -1
2015-09-16 03:49:00 NA
2015-09-16 03:50:00 1
2015-09-16 03:51:00 NA
2015-09-16 03:52:00 NA
Warning message:
timezone of object (IST) is different than current timezone().
我也尝试改变聚合函数本身的时区选择来做一个新的函数,但它仍然吐出相同的东西。
这真的很奇怪,因为我在其他一些变量中使用了同样的方法,我试图分析它,但它不会给我同样的问题。
如果我错过了某些东西,或者我该如何解决我的问题并将系列保存在“IST”中,是否有人可以提供一些信息? 任何帮助将不胜感激,请让我知道如果你需要任何更多的信息。
编辑:添加的要求
whole_data<- read.csv(file = file,header = FALSE,sep = "", col.names = c("DateTime","Seq","BP1","BQ1","BO1","AP1","AQ1","AO1","BP2","BQ2","BO2","AP2","AQ2","AO2","BP3","BQ3","BO3","AP3","AQ3","AO3","BP4","BQ4","BO4","AP4","AQ4","AO4","BP5","BQ5","BO5","AP5","AQ5","AO5","BP6","BQ6","BO6","AP6","AQ6","AO6","BP7","BQ7","BO7","AP7","AQ7","AO7","BP8","BQ8","BO8","AP8","AQ8","AO8","BP9","BQ9","BO9","AP9","AQ9","AO9","BP10","BQ10","BO10","AP10","AQ10","AO10"), colClasses = c(NA, rep("integer",31), rep("NULL", 30)))
whole_data<- whole_data[which(whole_data$DateTime != 0),]
whole_data$DateTime= as.POSIXct(whole_data$DateTime/(10^9), origin="1970-01-01")
trades<- whole_data[!complete.cases(whole_data),]
colnames(trades) <- c("DateTime", "Seq", "Price", "Qty", "TradeSide")
trades[,5][trades[,5]==2]<- -1
B<- as.xts(trades$TradeSide, order.by = trades$DateTime)
C<- aggregatets(B, FUN = "sum", on = on, k = k)
整个数据集大。对于这个特定的变量,我只需要交易行,这样我就可以进行交易了!完整案例
我仍然无法解决这个问题。你可以向我们透露一些情况吗?
它绝对不会在同一列,它不是时区信息。 B是我从data.frame转换为xts对象的买卖订单的时间序列。 – UtdMan
你可以给你用来生成B和底层数据框的代码吗?当我尝试将data.frame与您的数据转换为xts时,出现as.POSIXlt.character转换错误。 –
您要求的发布代码。对不起,延迟回复。 – UtdMan