如何识别上次住院后 72 小时内返回的人员?

问题描述 投票:0回答:1

我对 R 还很陌生。

我有一个数据库,其中包含每位患者的唯一标识符 (IPP)、每次住院的标识符 (NDA) 以及每次住院的进入和退出日期。

我需要确定多次住院(同一 IPP 的多次 NDA)的患者在上次住院后 72 小时内再次住院。

问题:我每个独特的住院 (NDA) 都有一条线路,而不是每个独特的患者 (IPP),而且我不确定如何最好地继续获得所需的结果。

我的数据库是这样的,有4列:

IPP <- c("123456", "456789", "789632","123456", "456789")
NDA <- c("147","211","789","258","456")
entry <- c("01/01/2024", "14/07/2024", "06/06/2024", "08/04/2024", "16/07/2024")
exit <- c("24/02/2024", "15/07/2024", "08/09/2024", "10/04/2024", "20/07/2024")
df <- data.frame(IPP, NDA, entry, exit)
print(df)

我尝试使用pivot_wider 将患者的所有住院信息(他的NDA 放在IPP 的一行上)。我在一行中获取了所有患者的住院数据,但入境、出境和 NDA 的日期位于其他行之后。我正在考虑接下来使用 lubridate,但我不确定这是最好的方法以及如何管理多个日期。

BD<- df %>%
  group_by(df$IPP) %>%
  mutate(id = 1:n()) %>%
  ungroup() %>%
  pivot_wider(values_from = c(entry, exit, NDA),
          names_from  = id,
          names_prefix = 'id_')`

我想要什么: IPP NDA1 进入 1 退出 1 NDA2 进入 2 退出 2 return72h 1 123456 147 01/01/2024 24/02/2024 无 2 456789 211 14/07/2024 15/07/2024 456 16/07/2024 20/07/2024 是 3 789632 789 06/06/2024 08/09/2024 无 4 123456 258 08/04/2024 10/04/2024 否

或者保留 df 的初始结构并添加一个标签,给出两次停留之间的时间,如果可能,还提供相应数据帧行的数量。这个解决方案可能更聪明。

非常感谢您的帮助!

r date uniqueidentifier difftime
1个回答
0
投票

使用 {dplyr} 中的

lag()
函数查找上一条记录:

IPP <- c("123456", "456789", "789632","123456", "456789")
NDA <- c("147","211","789","258","456")
entry <- c("01/01/2024", "14/07/2024", "06/06/2024", "08/04/2024", "16/07/2024")
exit <- c("24/02/2024", "15/07/2024", "08/09/2024", "10/04/2024", "20/07/2024")
df <- data.frame(IPP, NDA, entry, exit)

首先按患者摸索(IPP)并计算进入和上次退出之间的差异:

df |>
  dplyr::group_by(IPP) |>
  dplyr::mutate(diff = as.Date(entry, "%d/%m/%Y") - as.Date(dplyr::lag(exit, n=1), "%d/%m/%Y"))
#> # A tibble: 5 × 5
#> # Groups:   IPP [3]
#>   IPP    NDA   entry      exit       diff   
#>   <chr>  <chr> <chr>      <chr>      <drtn> 
#> 1 123456 147   01/01/2024 24/02/2024 NA days
#> 2 456789 211   14/07/2024 15/07/2024 NA days
#> 3 789632 789   06/06/2024 08/09/2024 NA days
#> 4 123456 258   08/04/2024 10/04/2024 44 days
#> 5 456789 456   16/07/2024 20/07/2024  1 days

创建于 2024 年 10 月 30 日,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.