私は数年間にわたる毎日の降雨データを扱っています。私は連続した雨の日に降雨量を合計して、その降雨量イベントの降雨量の合計を求めます。イベントごとに開始日と終了日と降水量を取得することも良いでしょう。私は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
'エラー:' "最初" の機能を見つけることができませんでした。関数 'first'を含む別のパッケージがありますか? – CCurtis
いいえ 'data.table()'パッケージが付属しています。どのバージョンの 'data.table'を使用していますか? – Psidom
それはそうだった。 1.96を使用していました。更新され、現在動作します。ありがとう。私は 'dplyr'ソリューションも好きですが、これはもっと簡潔です。 'rleid'は確かに多くのコードを削除します。 – CCurtis