【发布时间】:2021-09-19 05:08:49
【问题描述】:
我有一个包含患者发作的数据集。 每个患者都有自己的 PatientPersonalNumber。 住院发作有入院和出院日期。 我需要在新变量中标记(使用 TRUE,或使用 1)该事件中的患者将在 30 天内重新入院的所有事件。
install.packages("lubridate")
library(lubridate)
admission <- c("06/23/2013", "06/30/2013", "07/12/2013","06/24/2013","06/28/2013","06/29/2013","06/23/2013","06/24/2013","06/24/2013","07/02/2013","07/09/2013","06/24/2013","09/08/2013","07/22/2014")
discharge<- c("06/25/2013", "07/03/2014", "07/17/2014","06/30/2013","06/30/2013","07/02/2013","06/29/2013","06/29/2013","06/27/2013","07/05/2013","07/12/2013","06/28/2013","10/12/2013","08/01/2014")
admission.date <- mdy(admission)
discharge.date <- mdy(discharge)
patientPersonalNumber<-c("001","002","004","005","006","007","008","009","010", "005","005","011","005", "004")
df<-data.frame(patientPersonalNumber,admission.date,discharge.date)
df
patientPersonalNumber admission.date discharge.date
1 001 2013-06-23 2013-06-25
2 002 2013-06-30 2014-07-03
3 004 2014-07-12 2014-07-17
4 005 2013-06-24 2013-06-30
5 006 2013-06-28 2013-06-30
6 007 2013-06-29 2013-07-02
7 008 2013-06-23 2013-06-29
8 009 2013-06-24 2013-06-29
9 010 2013-06-24 2013-06-27
10 005 2013-07-02 2013-07-05
11 005 2013-07-09 2013-07-12
12 011 2013-06-24 2013-06-28
13 005 2013-09-08 2013-10-12
14 004 2014-07-22 2014-08-01
So I have to mark lines (3,4,10) as true.
#4 Patient 005 discharged 2013-06-30 was admitted 2013-07-02
#10 Patient 005 discharged 2013-07-05 was admitted 2013-07-09
#3 Patient 004 discharged 2013-06-30 was admitted 2013-07-22
I appreciate any help.
#origianl data were edit
【问题讨论】:
-
按患者id和入院日期排序,新建变量next.admission.date(可能是dplyr lag函数),然后测试next.admission.date - 出院日期是否在0到30之间. 有一些陷阱需要注意,例如:一次住院可以同时算作指数和再入院吗?当他们惩罚医疗保险报销的医院过度再入院时,我们总是遵循 CMS 方法。
-
这里有一个data.table解决方案:stackoverflow.com/questions/44508585/calculate-readmission-rate
-
@BillO'Brien,谢谢。我会查一下。我无法通过搜索找到它。非常感谢。
-
我建议使用住院指数作为分析单位。为了清楚起见,为变量添加前缀,例如index.admit.date、index.disch.date、rdm.admit.date、rdm.disch.date。这将使再入院率的计算变得更加容易。
标签: r date time-series