5

POSIXct object - time、numeric - RRR、および factor -の 3 つの変数のデータフレームがありますhe。ここRRRで は液体降水量で、heは水文学的事象の数です。ここでは、その時間は洪水事象の開始に対応します。

df <- structure(list(time = structure(c(1396879200, 1396922400, 1396976400, 
                                        1397008800, 1397095200, 1397332800, 1397354400, 1397397600, 1397451600, 
                                        1397484000, 1397527200, 1397786400, 1397959200, 1398002400, 1398024000, 
                                        1398132000, 1398175200, 1398218400, 1398261600, 1398369600, 1398466800, 
                                        1398477600, 1398520800, 1398564000, 1398607200, 1398747600, 1398780000, 
                                        1398909600, 1398952800, 1398974400, 1398996000),
                                      class = c("POSIXct", "POSIXt"),
                                      tzone = ""),
                     RRR = c(NA, 2, NA, 4, NA, NA, 0.9, 3, 
                             NA, 0.4, 11, NA, 0.5, 1, NA, 13, 4, 0.8, 0.3, NA, NA, 8, 4, 11, 
                             1, NA, 7, 1, 0.4, NA, 4),
                     he = c(1, NA, 2, NA, 3, 4, NA, NA, 
                            5, NA, NA, 6, NA, NA, 7, NA, NA, NA, NA, 8, 9, NA, NA, NA, NA, 
                            10, NA, NA, NA, 11, NA)), 
                class = "data.frame", 
                row.names = c(NA, -31L))

私のデータフレームの頭は次のようになります。

> df
                  time  RRR he
1  2014-04-07 18:00:00   NA  1
2  2014-04-08 06:00:00  2.0 NA
3  2014-04-08 21:00:00   NA  2
4  2014-04-09 06:00:00  4.0 NA
5  2014-04-10 06:00:00   NA  3
6  2014-04-13 00:00:00   NA  4
7  2014-04-13 06:00:00  0.9 NA
8  2014-04-13 18:00:00  3.0 NA
9  2014-04-14 09:00:00   NA  5

すべてのの時間と最後の非 NA値の時間差を計算する必要があります。たとえば、目的の差は になりますが、時間差は になります。したがって、最終的には、このようなデータフレームを取得したいと思います。ここで、「diff」は時差です。heRRRhe = 2difftime(df$time[3], df$time[2])he = 4difftime(df$time[6], df$time[4])

> df
                  time  RRR he  diff
1  2014-04-07 18:00:00   NA  1  NA
2  2014-04-08 06:00:00  2.0 NA  NA
3  2014-04-08 21:00:00   NA  2  15
4  2014-04-09 06:00:00  4.0 NA  NA
5  2014-04-10 06:00:00   NA  3  24
6  2014-04-13 00:00:00   NA  4  90
7  2014-04-13 06:00:00  0.9 NA  NA
8  2014-04-13 18:00:00  3.0 NA  NA
9  2014-04-14 09:00:00   NA  5  15
4

3 に答える 3