R中时间序列的小时平均值

时间:2012-08-21 16:11:48

标签: r time-series

  

可能重复:
  The hourly mean in time series

我有一个时间序列:

这是每30分钟测量一次的数据,所以我有536天

n=25728. 

这是一个ts,其中包含一列freq=48。我想计算每30分钟的平均值。

例如:

First 30min:
ts[1]+t[49]+t[97]+t[145]+.../536 days

Second 30min:
t[2]+t[50]+t[98]+..../536 days

什么是最好的代码?

1 个答案:

答案 0 :(得分:1)

要达到此效果,您可以使用aggregatetapply,另请参阅:

The hourly mean in time series

Calculate monthly average of ts object

一些示例代码:

time_series = runif(72)
# Create a ts object
time_ts = ts(time_series, frequency = 24)
# Calculate the mean
> tapply(time_ts, cycle(time_ts), mean)
        1         2         3         4         5         6         7         8 
0.2954238 0.6791355 0.6113670 0.5775792 0.3614329 0.4414882 0.6206761 0.2079882 
        9        10        11        12        13        14        15        16 
0.6238492 0.4069143 0.6333607 0.5254185 0.6685191 0.3629751 0.3715500 0.2637383 
       17        18        19        20        21        22        23        24 
0.2730713 0.3170541 0.6053016 0.6550780 0.4031117 0.6857810 0.4492246 0.4795785 
> aggregate(as.numeric(time_ts), list(hour = cycle(time_ts)), mean)
   hour         x
1     1 0.2954238
2     2 0.6791355
3     3 0.6113670
4     4 0.5775792