【发布时间】:2021-07-08 14:51:44
【问题描述】:
我有一个数据框,每行都有一个开始和结束日期。我想计算两个日期之间的天数并按年份拆分。 所以从这里开始:
id <- c(1,2,3)
start <- as.Date(c('01/01/2015','01/01/2016','07/01/2015'), format = '%m/%d/%Y')
end <- as.Date(c('12/31/2016','12/31/2016','12/31/2016'), format = '%m/%d/%Y')
df <- data.frame(id, start, end)
| id | Start | End |
|---|---|---|
| 1 | 01/01/2015 | 12/31/2016 |
| 2 | 01/01/2016 | 12/31/2016 |
| 3 | 01/07/2015 | 12/31/2016 |
到这里:
| id | Start | End | days_no. | year_2015 | year_2016 |
|---|---|---|---|---|---|
| 1 | 01/01/2015 | 12/31/2016 | 730 | 365 | 365 |
| 2 | 01/01/2016 | 12/31/2016 | 365 | 0 | 365 |
| 3 | 07/01/2015 | 12/31/2016 | 548 | 183 | 365 |
感谢任何帮助,请注意我想动态计算年度统计数据,在我的实际案例中我可能会得到很多年的列...我猜 lubridate 可能会有所帮助,但我不确定从哪里开始.
【问题讨论】: