如何在10分钟的时间间隔系列中调整周期?

时间:2017-04-11 14:40:32

标签: r xts

我有一个xts时间序列,其中包含一列“timeInt”,其中包含以毫秒数表示的时间间隔的开头。 可以通过向此值添加600000毫秒(10分钟)来获得时间间隔的结束。 那么,我的数据范围应该是一天的10分钟周期(从00.00到23:50)。

所以我有这个xts

>head(sms, n=8)
            squareId      smsIN     smsOUT
2013-12-01        1 0.11098917 0.16621437
2013-12-01        1         NA         NA
2013-12-01       10 0.05482169 0.09364877
2013-12-01       10         NA         NA
2013-12-01      100 0.04077425         NA
2013-12-01     1000 0.65962509 0.73610317
2013-12-01    10000 0.01432295         NA

如你所见,我有一个字段“squareId”,它被引用到地图中的一个单元格。有1000个细胞

>range(sms$squareId)
[1]     1 10000

问题在于我认为我无法获得正确的数据周期

>periodicity(sms)
0 seconds periodicity from 2013-12-01 to 2013-12-01 23:50:00 

事实上,如果我绘制xts我得到这个(我只绘制一小时因为我有一个大的xts)

>plot.zoo(sms['T08:00/T09:00',-c(1)], plot.type = 'multiple' )

enter image description here

我尝试使用to.period()函数

调整索引
>to.period(sms, period='seconds', OHLC = F)

似乎我得到了正确的周期性

10 minute periodicity from 2013-12-01 to 2013-12-01 23:50:00 

绘图似乎一切正常

enter image description here

但我意识到应用to.period()多个squareId会丢失

> range(mi.dec01_xts$squareId)
[1] 9895 9999

问题是,如何正确调整10分钟间隔的xts? 如何在不丢失squareId信息的情况下应用to.period()函数?

修改

在这里,我使用reproduce.R

粘贴一个可重现的例子

这是样本的样子:

                squareId      smsIN     smsOUT
2013-12-01 00:00:00        1 0.11098917 0.16621437
2013-12-01 00:00:00        1         NA         NA
2013-12-01 00:00:00       10 0.05482169 0.09364877
2013-12-01 00:00:00       10         NA         NA
2013-12-01 00:00:00      100 0.04077425         NA
2013-12-01 00:00:00      100 0.16140787 0.12063361
2013-12-01 00:00:00     1000 0.65962509 0.73610317
2013-12-01 23:50:00     9998         NA         NA
2013-12-01 23:50:00     9999 0.17198955         NA
2013-12-01 23:50:00     9999 0.08876703         NA




sms <- structure(c(1, 1, 10, 10, 100, 100, 1000, 9998, 9999, 9999,
0.110989169614244,NA, 0.0548216917417026, NA, 0.0407742548283372,
0.161407867214471,0.659625094191792, NA, 0.171989545769285,
0.0887670343758315,0.166214368861216, NA, 0.0936487714299922, NA, NA,
0.120633612386134,0.736103165655047, NA, NA, NA),
.indexCLASS = c("POSIXlt", "POSIXt"), tclass = c("POSIXlt", "POSIXt"),
.indexTZ = "UTC", tzone = "UTC", class = c("xts","zoo"),
index = structure(c(1385856000, 1385856000, 1385856000,1385856000,
1385856000, 1385856000, 1385856000, 1385941800, 1385941800,1385941800),
tzone = "UTC", tclass = c("POSIXlt", "POSIXt")), .Dim = c(10L,3L),
.Dimnames = list(NULL, c("squareId", "smsIN", "smsOUT"))) 

0 个答案:

没有答案