Это мой df
(data.frame):
group value
1 10
1 20
1 25
2 5
2 10
2 15
Мне нужно рассчитать разницу между значениями в последовательных строках по группам.
Итак, мне нужен этот результат.
group value diff
1 10 NA # because there is a no previous value
1 20 10 # value[2] - value[1]
1 25 5 # value[3] value[2]
2 5 NA # because group is changed
2 10 5 # value[5] - value[4]
2 15 5 # value[6] - value[5]
Хотя я могу решить эту проблему с помощью ddply
, но это занимает слишком много времени. Это потому, что у меня много групп в df
. (более 1 000 000 групп в моем df
)
Существуют ли другие эффективные подходы для решения этой проблемы?