我有以下xts矩阵:

> options(digits.secs = 6)
> set.seed(1234)
> xts(1:10, as.POSIXlt(1366039619, tz="EST", origin="1970-01-01") + rnorm(10, 500000, 250000)/1000000)
                           [,1]
2013-04-15 10:26:58.913576    4
2013-04-15 10:26:59.198234    1
2013-04-15 10:26:59.277491   10
2013-04-15 10:26:59.356315    7
2013-04-15 10:26:59.358887    9
2013-04-15 10:26:59.363342    8
2013-04-15 10:26:59.569357    2
2013-04-15 10:26:59.607281    5
2013-04-15 10:26:59.626514    6
2013-04-15 10:26:59.771110    3
Warning message:
timezone of object (EST) is different than current timezone ().

我需要每100毫秒生成一个时间序列条目,其中包含该时间段的最后一个值。例如:
                           [,1]
2013-04-15 10:26:58.000000    4
2013-04-15 10:26:59.100000    4
2013-04-15 10:26:59.200000    1
2013-04-15 10:26:59.300000    10
2013-04-15 10:26:59.400000    8
...

请注意最后一个条目如何携带8,即.300000到.399999期间的最后一个条目。

最佳答案

我不确定这是否可以在Windows上使用,因为对亚秒级精度的支持很差,但是在Ubuntu上可以使用。

library(xts)
options(digits.secs=6)
set.seed(1234)
x <-  xts(1:10, as.POSIXlt(1366039619, tz="EST", origin="1970-01-01")
  + rnorm(10, 500000, 250000)/1000000)
ti <- trunc(index(x))
ms <- rep(seq(min(ti),max(ti),by="s"), each=10)+0:9/10
a <- merge(x,ms,fill=na.locf)[ms]

您会注意到,与其他需要根据不规则数据创建常规xts系列的其他实例一样,该操作也是如此。但是,这有点困难,因为生成亚秒级序列会更加困难。

关于r - r-如何根据随机时间观测值生成规则的xts周期?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16179482/

10-12 21:16