ループせずに次のことを行う方法を見つけようとしています。次のような、時間、調査場所、フローの溶けたデータセットがあります。
datetime サイト フロー2009 年 6 月 1
日 00:00 EBT NA 2009 年 6 月 2
日 01:00 EBT NA 2009 年 6 月 3
日 02:00 EBT 0.1 2009 年 6 月 4
日 03:00 EBT NA
2009 年 6 月 5 日 04: 00 EBT NA
6/1/2009 00:00 MUT 0.4
6/2/2009 01:00 MUT 0.3
6/3/2009 02:00 MUT 0.2
6/4/2009 03:00 MUT NA
6/5/2009 04: 00 ミュートなし
これをサイトごとにサブセット化する必要があります。次に、少なくとも 2 つの後続の流量測定がある期間について、いくつかの計算を実行する必要があります。たとえば、現在と前回の測定値の平均です。
秘訣は、連続する測定の各セットで平均を実行する必要があることです。つまり、後者の 2 つの測定のそれぞれに対して 3 つの行が連続している場合、その測定と前の測定の平均が必要です。取得したい結果を含む目標列をサンプル データフレームに追加しました。*
日時、サイト、および計算結果を含む同様のデータフレームを作成したいと思います。各サイトには完全な時系列があります。
助けてくれてありがとう!
データジェネレーター:
structure(list(datetime = structure(c(1167627600, 1167717600,
1167807600, 1167897600, 1167987600, 1167627600, 1167717600, 1167807600,
1167897600, 1167987600, 1168077600, 1168167600, 1168257600, 1168347600,
1168437600), class = c("POSIXct", "POSIXt"), tzone = ""), site = structure(c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("EBT",
"MUT"), class = "factor"), flow = c(NA, 0.1, NA, NA, NA, NA,
0.4, 0.2, NA, NA, 0.4, 0.2, 0.1, NA, NA), goal = c(NA, NA, NA,
NA, NA, NA, NA, 0.3, NA, NA, NA, 0.3, 0.15, NA, NA)), .Names = c("datetime",
"site", "flow", "goal"), row.names = c(NA, -15L), class = "data.frame")