【发布时间】:2014-11-23 15:30:27
【问题描述】:
我有一个如下所示的数据框:
id date
1001 2012-10-11
1005 2013-02-20
1005 2012-11-21
1005 2014-03-14
1003 2013-10-25
1003 2013-11-30
我需要为每一行查找自上次出现该 ID 以来经过的天数。对于上面的例子,答案应该是这样的:
id date no_of_days
1001 2012-10-11 NA
1005 2013-02-20 91
1005 2012-11-21 NA
1005 2014-03-14 387
1003 2013-10-25 NA
1003 2013-11-30 36
经过一番搜索,我可以添加一个新列,其中包含通过对子组应用函数生成的值(R 相当于 STATA 的“bysort”):
df$no_of_days<-with(df,ave(id,id,FUN=days_passed,na.rm=TRUE))
然而,定义新函数 days_passed 被证明是棘手的,因为我必须找到该 uniqid 的最后一次出现,然后相应地制定函数。
我是 R 新手,因此非常感谢您对此提供任何帮助。谢谢!
【问题讨论】:
标签: r