我有时间序列数据,其值在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
答案 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