【发布时间】:2019-08-08 10:08:36
【问题描述】:
我的 df 有一些独特的和一些双重的条目和列,显示每个观察的开始和结束日期,但它们不能重叠相同的 id。
df <- data.frame(id = c(22,22,102,102,102),
start_date = as.Date(c("2013-10-29","2014-01-09",
"2016-09-14",
"2016-09-14","2016-09-14")),
end_date = as.Date(c("2017-08-15","2018-10-05",
"2016-10-09",
"2017-12-12","2018-10-17")))
head(df)
id start_date end_date
1 22 2013-10-29 2017-08-15
2 22 2014-01-09 2018-10-05
3 102 2016-09-14 2016-10-09
4 102 2016-09-14 2017-12-12
5 102 2016-09-14 2018-10-17
ids 22 和 102 日期间隔重叠,但对于 22 具有不同的 start_date 而对于 102 具有相同的 start_date。
我需要的结果是:
- 当日期重叠时,以上次观察的最后日期作为开始日期。
- 当日期不重叠时,保留实际值。
有什么想法或建议吗?
我期望的结果是:
head(fixed_df)
id start_date end_date
1 22 2013-10-29 2017-08-15
2 22 2017-08-15 2018-10-05
3 102 2016-09-14 2016-10-09
4 102 2016-10-09 2017-12-12
5 102 2017-12-12 2018-10-17
【问题讨论】: