我正在處理一些跨越數年的日常降雨數據。我想在連續的雨天總結降雨量以獲得該降雨事件的總降雨量。獲得每個事件的起止日期和降雨強度也很好。我在想我可以跟aggregate
一起破解一些東西,但是我在腦海裏想做的事情似乎很龐大。有沒有快速和優雅的解決方案可能與dplyr
,tdyr
或data.table
找到。R中的事件數據總和
數據
structure(list(Time = structure(c(1353398400, 1353484800, 1353571200,
1353657600, 1353744000, 1353830400, 1353916800, 1354003200, 1354089600,
1354176000, 1354262400, 1354348800, 1354435200, 1354521600, 1354608000,
1354694400, 1354780800, 1354867200, 1354953600, 1355040000, 1355126400,
1355212800, 1355299200, 1355385600, 1355472000, 1355558400, 1355644800,
1355731200, 1355817600, 1355904000, 1355990400, 1356076800, 1356163200,
1356249600, 1356336000, 1356422400, 1356508800, 1356595200, 1356681600,
1356768000, 1356854400, 1356940800, 1357027200, 1357113600, 1357200000,
1357286400, 1357372800, 1357459200, 1357545600, 1357632000, 1357718400
), class = c("POSIXct", "POSIXt"), tzone = ""), inc = c(NA, NA,
NA, NA, NA, NA, NA, 0.11, NA, 0.62, 0.0899999999999999, 0.39,
NA, NA, 0.03, NA, NA, NA, NA, NA, NA, 0.34, NA, NA, NA, NA, 0.0600000000000001,
0.02, NA, NA, NA, 0.29, 0.35, 0.02, 0.27, 0.17, 0.0600000000000001,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.47, NA, NA, NA, 0.0300000000000002
)), .Names = c("Time", "inc"), row.names = 50:100, class = "data.frame")
所需的輸出
Begin End Days Total Intensity
11/27/2012 11/27/2012 1 0.11 0.11
11/29/2012 12/1/2012 3 1.1 0.366666667
12/4/2012 12/4/2012 1 0.03 0.03
12/11/2012 12/11/2012 1 0.34 0.34
12/16/2012 12/17/2012 2 0.08 0.04
12/21/2012 12/26/2012 6 0.29 0.048333333
1/5/2013 1/5/2013 1 0.47 0.47
1/9/2013 1/9/2013 1 0.03 0.03
'asDate(first(Time))中的錯誤:找不到函數「first」'。是否有另一個包含函數'first'的包? – CCurtis
不可以。它附帶'data.table()'包。你正在使用哪個版本的'data.table'? – Psidom
就是這樣。正在使用1.96。現在更新並運行。謝謝。我也喜歡'dplyr'解決方案,但這實際上更簡潔。 'rleid'肯定會剪掉很多代碼。 – CCurtis