我有一个大量的车祸数据,它的一个样本提供如下。cumsum根据某些限制在r
accident
是事故发生的二元变量还是不是 。shift_number
是换档次数,0表示驾驶员是 休息而不是换班。time_diff
是每次观察的时间量。df <- data.frame( accident = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), shift_number = c(1, 1, 0, 0, 0, 2, 2, 2, 0, 0, 3, 3, 3, 3, 3), time_diff = 3:17 )
我的问题是,因为驾驶员开始这种转变对于每次事故来衡量工作时间的总量。
wanted <- data.frame
(
accident = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1),
shift_number = c(1, 1, 0, 0, 0, 2, 2, 2, 0, 0, 3, 3, 3, 3, 3),
time_diff = 3:17,
cum_time = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 75)
)
有没有人有解决R问题的想法?因为我有大量的数据需要处理,所以最好有data.table或vectorised解决方案。
我不清楚'cum_time'是如何计算的。 –
@Ronak Shah cum_time每次事故都是在该班次开始时的“time_diff”cumsum,事故实际发生的地点 –