我有一个看起来像这样的数据集。
Id Date1 Cars
1 2007-04-05 72
2 2014-01-07 12
2 2018-07-09 10
2 2018-07-09 13
3 2005-11-19 22
3 2005-11-23 13
4 2010-06-17 38
4 2010-09-23 57
4 2010-09-23 41
4 2010-10-04 17
我想为每个ID获得相对于该ID的第一个日期(最早)日期的日期差。对于每个ID,(最早日期-第2个最早日期),(最早日期-第3个最早日期),(最早日期-第4个最早日期)...等等。
我最终会得到像这样的数据集
Id Date1 Cars Diff
1 2007-04-05 72 NA
2 2014-01-07 12 NA
2 2018-07-09 10 1644 = (2018-07-09 - 2014-01-07)
2 2018-07-09 13 1644 = (2018-07-09 - 2014-01-07)
3 2005-11-19 22 NA
3 2005-11-23 13 4 = (2005-11-23 - 2005-11-19)
4 2010-06-17 38 NA
4 2010-09-23 57 98 = (2010-09-23 - 2010-06-17)
4 2010-09-23 41 98 = (2010-09-23 - 2010-06-17)
4 2010-10-04 17 109 = (2010-10-04 - 2010-09-23)
我不清楚如何做到这一点。任何帮助将非常感激。谢谢
您可以在每个Id
中减去第一个值。
library(dplyr)
df %>%
mutate(Date1 = as.Date(Date1)) %>%
group_by(Id) %>%
mutate(Diff = as.integer(Date1 - first(Date1)))