以r xts平均时间序列数据

时间:2014-08-06 17:30:21

标签: r time-series xts zoo

我有时间序列数据,其值在1分钟采样间隔结束时存储(即00:00的数据属于23:59 - 00:00等区间。)

我现在希望以5分钟的间隔平均得出平均浓度为00:05,00:10等。

我得到的代码是00:04,00:09等的平均值,这似乎与端点功能有关,但我无法弄清楚如何正确平均(即在我的情况下分钟) 00:01到00:05在00:05报告为平均值。)

library(zoo)
library(xts)

t1 <- as.POSIXct("2012-1-1 0:1:0") 
t2 <- as.POSIXct("2012-1-1 0:15:0") 
d <- seq(t1, t2, by = "1 min") 
x <- rnorm(length(d)) 

z <- zoo(x, d) 

period.apply(z,endpoints(z,"mins",5),mean)

> 2012-01-01 00:04:00 2012-01-01 00:09:00 2012-01-01 00:14:00 2012-01-01 00:15:00 
      0.6864088          -0.9403631          -0.4269895           0.6728044 

1 个答案:

答案 0 :(得分:2)

endpoints功能正常运行。您需要更改索引值。 00:05:00是第5分钟的开头,而不是结束。

> z <- zoo(x, d-1)
> period.apply(z,endpoints(z,"mins",5),mean)
2012-01-01 00:04:59 2012-01-01 00:09:59 2012-01-01 00:14:59 
          1.2324436          -0.5881076           0.5067009