昨日回答をいただきましたが、100%正しく機能していないことが1つあります。私のデータフレームSHORT:
ID IDaxis Y Date-Time Tdiff
1 1 5 2012-06-11 13:10:30 0.00
1 1 10 2012-06-11 15:10:30 2.00
1 1 20 2012-06-11 17:10:30 2.00
1 3 15 2012-06-11 13:20:30 0.00
1 3 30 2012-06-11 14:20:30 1.00
1 3 45 2012-06-11 17:20:30 3.00
1 6 9 2012-06-11 13:35:30 0.00
1 6 15 2012-06-11 15:35:30 2.00
1 6 30 2012-06-11 18:35:30 3.00
3 2 8 2012-06-11 13:50:30 0.00
3 2 14 2012-06-11 14:55:30 1.083
3 2 20 2012-06-11 16:55:30 2.00
3 2 30 2012-06-11 19:00:30 2.083
3 5 10 2012-06-11 13:40:30 0.00
3 5 15 2012-06-11 16:45:30 3.083
ID-植物
IDaxis-植物の葉
Y-葉の長さ
日付-時間-測定の日付と時刻Tdiff-測定
間の時間(h)間隔
私はやってみたいです:
- 列SHORT$TtotのIDaxisのTdiffを合計します
- 列SHORT$YdiffのIDaxisのYの行間の差を計算します
- 列SHORT$YtotのIDaxisのYdiffを合計します
コード:
SHORT$Ttot <- ave(SHORT$Tdiff, SHORT$IDaxis, FUN = cumsum)
よく働くSHORT$Ydiff <- ave(SHORT$Y, SHORT$IDaxis, FUN = diff)
ここで問題があります。Ydiffは次のようになります(新しいIDxaisの最初の各行はequal = 0です):
ID IDaxis Y Ydiff
1 1 5 0
1 1 10 5
1 1 20 10
1 3 15 0
1 3 30 15
1 3 45 15
1 6 9 0
しかし、Ydiffは次のようになります。
ID IDaxis Y Ydiff
1 1 5 5
1 1 10 10
1 1 20 -5
1 3 15 15
1 3 30 15
1 3 45 15
1 6 9 -36
これはすべてコードを台無しにします:
3.3。SHORT$Ytot <- ave(SHORT$Ydiff, SHORT$IDaxis, FUN = cumsum)
非常に役立つコードで答えることができれば。
Rで作業を開始したばかりですが、これはデータフレームの簡略化されたバージョンです-問題を示すためだけです。それぞれ700IDの3つのデータフレームがあり、それぞれに100のIDaxisと25の変数があります。