我对R有一点问题,而且我的技能在某种程度上受到了限制。我想在基于前一行的数据框中进行两次计算。第一个是计数变量,另外我想计算当前行和上一行之间的差异。
我认为澄清我的问题的最简单方法是一个小例子:
想象一下下面的表格,它只包含两列。user
是客户编号,time
是特定用户的交易时间。
现在我想创建示例表中指定的两个新列:
计数器变量
count
,简单统计用户的交易次数,表示实际用户的实际交易次数。变量
diff (time [s])
,它是当前事务与前一个事务之间的时间差 [以秒为单位]。因此类似于:时间 [i] - 时间 [i-1],但每个新用户的计算必须从零重新开始;显然无法计算每个用户的第一笔交易的时间差。
我试图用一个循环来解决这个问题,但是表格非常大,对完整数据集的计算只是不想结束。
user time count diff(time[s])
A 10:00:00 1
A 10:30:00 2 1.800
A 12:00:00 3 5.400
A 13:00:00 4 3.600
B 14:00:00 1
C 15:00:00 1
C 16:00:00 2 3.600
C 17:00:00 3 3.600