【发布时间】:2022-01-11 19:09:39
【问题描述】:
我有以下df:
df = data.frame(id=c(1,1,1,1,1,1),
date=c(as.Date("2000-01-01"), as.Date("2000-07-11"),
as.Date("2000-08-01"), as.Date("2000-12-31"),
as.Date("2002-05-04"), as.Date("2002-06-01")))
我需要以下结果:
result = data.frame(id=c(1,1,1,1,1,1),
date=c(as.Date("2000-01-01"), as.Date("2000-07-11"),
as.Date("2000-08-01"), as.Date("2000-12-31"),
as.Date("2002-05-04"), as.Date("2002-06-01")),
days_91 = c(0,0,1,0,0,1),
days_182 = c(0,0,1,0,0,1),
days_273 = c(0,1,1,1,0,1),
days_365 = c(0,1,1,1,0,1))
基本上,对于某个日期,我想知道在过去 X 天内是否存在同一个 ID 的先前日期。
我认为一定存在润滑功能,但没有找到。
结果:
| id | date | days_91 | days_182 | days_273 | days_365 |
|---|---|---|---|---|---|
| 1 | 2000-01-01 | 0 | 0 | 0 | 0 |
| 1 | 2000-07-11 | 0 | 0 | 1 | 1 |
| 1 | 2000-08-01 | 1 | 1 | 1 | 1 |
| 1 | 2000-12-31 | 0 | 1 | 1 | 1 |
| 1 | 2002-05-04 | 0 | 0 | 0 | 0 |
| 1 | 2002-06-01 | 1 | 1 | 1 | 1 |
例如,对于第 3 行,在过去 91、182、273 和 365 天中存在上一个日期。但是在第 2 行中,过去 91 天和 182 天没有以前的访问
【问题讨论】: