假设我有以下数据集:
id strt_dt end_dt
1 2013-05-07 2013-05-13
1 2013-05-14 2013-05-20
1 2013-05-21 2013-05-27
2 2013-05-14 2013-05-15
2 2013-05-16 2013-05-22
2 2013-05-23 2013-05-29
我要计算每个“ID”的结束日期和开始日期之间的天数差:
id strt_dt end_dt diff
1 2013-05-07 2013-05-13 NA
1 2013-05-14 2013-05-20 1
1 2013-05-21 2013-05-27 1
2 2013-05-14 2013-05-15 NA
2 2013-05-16 2013-05-22 1
2 2013-05-29 2013-05-29 7
目标是通过“ID”获取每个观察结果的“strt_dt”和前一行“end_dt”之间的差值,每个“ID”的第一个观察结果除外。
1条答案
按热度按时间nimxete21#
这可以通过使用
dplyr
库中的lag
并应用group_by
为每个id创建它来实现,如下所示:mutate
:创建新列difftime
:查找日期之间的差值(基于指定的单位)这将为您提供以下信息:
如果你想去掉单词
days
,你可以把diff结果转换成numeric,如下所示:希望能有所帮助。