我有记录入院日期和住院天数的住院数据:
ID date ndays
1 2005-06-01 15
2 2005-06-15 60
3 2005-12-25 20
4 2005-01-01 400
4 2006-06-04 15
我想创建一个每年在医院度过的天数的数据集,因此我需要处理像 ID 3 和 ID 4 这样的病例,他们在医院的住院时间超过了年底,而 ID 4,他们在医院的住院时间超过一年。还有一个问题,有些人明年确实有记录,我想在发生这种情况的时候加上“盈余”天数。
到目前为止,我已经提出了这个解决方案:
library(lubridate)
ndays_new <- ifelse((as.Date(paste(year(data$date),"12-31",sep="-")),
format="%Y-%m-%d") - data$date) < data$ndays,
(as.Date(paste(year(data$date),"12-31",sep="-")),
format="%Y-%m-%d") - data$date) ,
data$ndays)
但是,我想不出一种方法来获得那些超过年底的“剩余”天数,并将它们分配给明年开始的新记录。任何人都可以指出一个好的解决方案吗?我使用 dplyr,因此特别欢迎使用该软件包的解决方案,但如果需要,我愿意尝试任何其他工具。