2017-04-21 49 views
0

我有一系列日子的降雨數據。我的目標是根據觀察時間戳之間的差距將非零降雨量值組合成離散事件。根據採樣時間將數據分組爲組

目前,我有一個所有非零降雨觀測數據幀。我想將這些意見歸納爲事件。如果行i和行j之間的時間間隔大於30分鐘,我想要觸發一個新的「事件」/組。這可能使用R:dplyr?

回答

1

這也許可以這樣做:

library(dplyr) 
df <- tibble(
    time = as.POSIXct(c("2016-03-01 08:33:00", "2016-03-01 08:45:00", "2016-03-01 10:00:00", "2016-03-01 10:07:00")), 
    value = c(10, 12, 7, 13) 
) 
df %>% 
    mutate(timegap = difftime(time, lag(time, default = time[1])), 
     event = cumsum(as.numeric(timegap) > 30 * 60)) 

# # A tibble: 4 × 4 
#     time value timegap event 
#    <dttm> <dbl> <time> <int> 
# 1 2016-03-01 08:33:00 10 0 secs  0 
# 2 2016-03-01 08:45:00 12 720 secs  0 
# 3 2016-03-01 10:00:00  7 4500 secs  1 
# 4 2016-03-01 10:07:00 13 420 secs  1 
+0

一百萬次謝謝! 該解決方案沒有開箱即用,但一些調整它工作的一種享受! – Ciaran