ランプのオンとオフを切り替える時間を追跡するこのサンプル データフレームがあります。
time lamp status
1 2015-01-01 12:18:17 2 ON
2 2015-01-01 13:07:29 28 ON
3 2015-01-01 13:11:50 28 OFF
4 2015-01-01 13:18:28 2 OFF
5 2015-01-01 14:07:29 28 ON
6 2015-01-01 14:11:35 28 OFF
7 2015-01-01 14:18:28 2 ON
5 2015-01-01 14:18:57 2 OFF
私が達成したいのは、ランプがオンになっている期間 (秒単位) を含む 4 番目の列を追加することです。
望ましい出力:
time lamp status duration
1 2015-01-01 12:18:17 2 ON 3611
2 2015-01-01 13:07:29 28 ON 261
3 2015-01-01 13:11:50 28 OFF NA
4 2015-01-01 13:18:28 2 OFF NA
5 2015-01-01 14:07:29 28 ON 246
6 2015-01-01 14:11:35 28 OFF NA
7 2015-01-01 14:18:28 2 ON 29
5 2015-01-01 14:18:57 2 OFF NA
while ループと for ループを含むカスタム関数を使用して、これを行うことに既に成功しています。しかし...私はRの初心者であり、これはよりシンプルでエレガントにできると確信しています(サブセット、適用、および/または....を使用)。方法がわかりませんか?
正しい方向に導くためのアイデアはありますか?