2

ランプのオンとオフを切り替える時間を追跡するこのサンプル データフレームがあります。

                  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の初心者であり、これはよりシンプルでエレガントにできると確信しています(サブセット、適用、および/または....を使用)。方法がわかりませんか?

正しい方向に導くためのアイデアはありますか?

4

1 に答える 1