【问题标题】:How to mark episodes in which patient will be readmitted in 30-days?如何标记患者将在 30 天内重新入院的情节?
【发布时间】: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


【解决方案1】:

会采用这样的方式:

require(tidyverse)
df %>% 
  arrange(patientPersonalNumber, admission.date) %>% 
  group_by(patientPersonalNumber) %>% 
  mutate(re.admin = (lag(discharge.date) + 30) >= admission.date) %>% 
  mutate(re.admin = ifelse(is.na(re.admin), FALSE, re.admin ))



# A tibble: 14 x 4
# Groups:   patientPersonalNumber [10]
   patientPersonalNumber admission.date discharge.date re.admin
   <chr>                 <date>         <date>         <lgl>   
 1 001                   2013-06-23     2013-06-25     FALSE   
 2 002                   2013-06-30     2014-07-03     FALSE   
 3 004                   2013-07-22     2014-08-01     FALSE   
 4 004                   2014-07-12     2014-07-17     TRUE    
 5 005                   2013-06-24     2013-06-30     FALSE   
 6 005                   2013-07-02     2013-07-05     TRUE    
 7 005                   2013-07-09     2013-07-12     TRUE    
 8 005                   2013-09-08     2013-10-12     FALSE   
 9 006                   2013-06-28     2013-06-30     FALSE   
10 007                   2013-06-29     2013-07-02     FALSE   
11 008                   2013-06-23     2013-06-29     FALSE   
12 009                   2013-06-24     2013-06-29     FALSE   
13 010                   2013-06-24     2013-06-27     FALSE   
14 011                   2013-06-24     2013-06-28     FALSE   

【讨论】:

  • 感谢您的帮助。谢谢。然而,在我看来,在这对代码中,这个代码标志着第二集。这也是有益的。但是,我只关注第一集。
  • 对于 005,只有前两个应该为真。 #5 于 2013 年 6 月 30 日出院并于 2013 年 7 月 2 日入院和 #6 于 2013 年 7 月 5 日出院并于 2013 年 7 月 9 日入院
猜你喜欢
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 2019-06-09
  • 2021-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多