разница в задержке по идентификатору проблемы - PullRequest
1 голос
/ 28 мая 2020

У меня есть такой набор данных

 ID     Date        Total  
 1      2002-03-12   4.98
 1      2003-06-06   5.49
 2      2005-10-10   2.62
 2      2010-04-07   2.02
 2      2012-04-03   2.40 
 2      2014-04-10   2.45

Я пытаюсь вычислить разницу между значением Total (t + 1) и Total (t) по каждому идентификатору.

окончательный ожидаемый набор данных должен быть следующим:

 ID     Date        Total    Delta
 1      2002-03-12   4.98    NA
 1      2003-06-06   5.49    0.51 = 5.49 - 4.98
 2      2005-10-10   2.62    NA
 2      2010-04-07   2.02    -0.6 = 2.02 - 2.62 
 2      2012-04-03   2.40    0.38 = 2.40 - 2.02
 2      2014-04-10   2.45    0.05 = 2.45 - 2.40

Я пробовал это ниже

library(dplyr)
df %>%
   group_by(Id, Date) %>%
   arrange(Id, Date) %>%
   mutate(
     Delta = (Total - lag(Total, 1))
   )

Это не работает, я вижу НП в столбце Дельта. Любые предложения или помощь очень приветствуются. Спасибо.

...