将特定小时的观察值替换为前一天的最大值

时间:2014-03-06 20:31:24

标签: r datetime xts

我有过去几年的AWS每小时天气数据。我试图使用.indexhour()中的xts从中提取每日数据。记录器累计降雨量04:00:00至03:00:00。

 > head(w.ts,10)
                      AT RH  ATMP SUND RF  WS  WD  ST5 ST20 LWT   LT   SM SRAD DIRAD AT.MIN AT.MAX HRF
2011-10-07 15:00:00 23.3 86 980.0 8.37  0 0.4 346 28.5 29.3   1 21.2 0.21 0.01     0   23.2   23.9   0
2011-10-07 16:00:00 23.5 99 980.2 8.37  0 0.3 291 28.0 29.2   1 21.7 0.21 0.01     0   22.9   23.7   0
2011-10-07 17:00:00 23.2 99 980.1 8.37  0 0.2  63 27.7 29.0   1 21.4 0.21 0.01     0   22.7   23.6   0
2011-10-07 18:00:00 22.3 99 980.1 8.37  0 0.4 351 27.3 28.8   1 20.7 0.21 0.01     0   22.2   23.3   0
2011-10-07 19:00:00 22.0 99 979.9 8.37  0 1.4 322 27.0 28.6   1 20.3 0.21 0.00     0   21.8   22.4   0
2011-10-07 20:00:00 21.8 99 979.6 8.37  0 0.8  16 26.7 28.5   1 20.3 0.21 0.00     0   21.6   22.5   0
2011-10-07 21:00:00 21.5 99 979.4 0.00  0 0.7  12 26.4 28.3   1 19.9 0.21 0.00     0   21.3   21.9   0
2011-10-07 22:00:00 21.9 99 979.0 0.00  0 0.8  96 26.2 28.1   1 20.7 0.21 0.00     0   21.2   22.0   0
2011-10-07 23:00:00 21.9 99 979.1 0.00  0 0.5  45 26.1 28.0   1 20.5 0.21 0.00     0   21.6   22.2   0
2011-10-08 00:00:00 21.7 99 979.4 0.00  0 1.0 358 25.9 27.8   1 20.6 0.21 0.00     0   21.5   22.0   0

rf.d<-w.ts$RF
rf.d<-rf.d[.indexhour(rf.d) %in% 3]

但这省略了没有3点钟记录的日子。当我与AT.MAX和其他xts对象的最大值合并时(在从行名中删除时间部分之后),因为在省略的日期有观察结果,这变得很麻烦。

> head(rf.d)
           RF
2011-10-08  0
2011-10-09  0
2011-10-10  0
2011-10-11  0
2011-10-12  0
2011-10-13  0
> head(Daily_GSP)
       dates AT.MAX AT.MIN RH RH.1 RF     ATMP     SUND        WS       WD      ST5     ST20       LWT       LT        SM
1 2011-10-07   23.9   21.2 NA   NA NA 979.7111 5.580000 0.6111111 171.3333 27.10000 28.64444 1.0000000 20.74444 0.2100000
2 2011-10-08   31.3   19.4 99   71  0 980.3000 5.062500 0.9583333 221.5417 27.54167 28.10000 0.9475000 24.82083 0.2100000
3 2011-10-09   32.2   18.7 79   39  0 981.0542 5.366250 0.9916667 163.0000 26.96667 27.55417 0.9654167 25.26667 0.2079167
4 2011-10-10   32.1   18.5 99   41  0 981.9000 5.344583 0.9916667 195.4167 26.67500 27.20833 0.9650000 24.97917 0.2000000
5 2011-10-11   31.9   18.5 99   43  0 981.6958 5.358750 0.8958333 167.5000 26.46250 26.94167 0.9470833 24.72500 0.2000000
6 2011-10-12   32.5   18.0 99   41  0 980.3833 5.257917 0.9250000 168.6250 26.35000 26.79583 0.9645833 24.87500 0.2000000

如果没有观察到3点钟的日子充满了前一天的最大数据,则可以避免这种情况。请帮助我。

0 个答案:

没有答案