我有以下数据:
ID GROUP DATE
A GR1 12/01/2013
A GR1 09/04/2014
A GR1 01/03/2015
A GR2 04/04/2015
A GR2 08/21/2015
A GR1 01/05/2016
A GR1 06/28/2016
B GR2 11/01/2013
B GR2 06/04/2014
B GR2 04/15/2015
B GR3 11/04/2015
B GR2 03/21/2016
B GR2 07/05/2016
B GR1 06/28/2016
C GR2 01/16/2014
C GR2 06/04/2014
C GR2 04/15/2015
C GR3 11/04/2015
C GR2 03/21/2016
C GR2 06/05/2016
C GR1 06/28/2016
我希望得到每个组中人员留存率的差异。因此,新表格应如下所示:
ID GROUP DATE Diff
A GR1 12/01/2013
A GR1 09/04/2014
A GR1 01/03/2015 398
A GR2 04/04/2015
A GR2 08/21/2015 139
A GR1 01/05/2016
A GR1 06/28/2016 175
B GR2 11/01/2013
B GR2 06/04/2014
B GR2 04/15/2015 530
B GR3 11/04/2015
B GR2 03/21/2016
B GR2 07/05/2016 106
B GR1 06/28/2016
C GR2 01/16/2014
C GR2 06/04/2014
C GR2 04/15/2015 454
C GR3 11/04/2015
C GR2 03/21/2016
C GR2 01/05/2016 76
C GR1 06/28/2016
“Diff”列中的值398是通过计算‘01/03/2015’- ‘12/1/2013’得出的差异。类似地,其他所有差异也是这样得出的。
现在我的问题是如何获得这个差异?我不能在每个组中取max(date)-min(date),因为不同时间段会重复出现相同的组。同样,我也不能像SAS那样取第一个点和最后一个点。
如果有人能帮我解决这个问题,我将非常感激。由于数据量非常大,因此我更喜欢使用SAS来解决这个问题。所以无法将其全部保存在内存中。
谢谢!