我昨天收到了答复,但有一件事不是 100% 正确的。我的数据框简短:
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 - 叶长
Date - Time - 测量日期和时间
Tdiff - time(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 的第一行等于=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.SHORT$Ytot <- ave(SHORT$Ydiff, SHORT$IDaxis, FUN = cumsum)
如果您可以用一段代码来回答,那将非常有帮助。
我刚刚开始使用 R,但这是我的数据框的简化版本 - 只是为了显示问题。我有三个数据框,每个 700 ID,每个都有 100 IDaxis 和 25 个变量。