我正在研究重症监护病房在大流行期间的拔管率是如何变化的。
我有一个数据集,该数据集在每小时的时间戳旁边是一类简化的气道类型:
时间 | 空中航线状态 |
---|---|
2020/01/01 00:00 | ETT / LMA |
2020/01/01 01:00 | ETT / LMA |
2020/01/01 02:00 | 自己的气道 |
2020/01/01 03:00 | 自己的气道 |
2020/01/01 04:00 | ETT / LMA |
我真正想做的是找到拔管的时间(ETT / LMA转向自己的气道)和插管的时间(从ETT / LMA到自己的气道)。最终,我希望能够看到拔管的患者多久需要重新插管一次。
在48小时之内,这被称为拔管失败,与大流行之前相比,我们期望在大流行期间看到大量不同的数据。
到目前为止,我的想法是使用前一个小时的airwayStatus创建一个单独的列,然后如果它们不相同,则进行计数。不过,这似乎并不复杂,我希望某些聪明的人可能有更好的选择。
先感谢您
假设您有一个数据框(或小标题)df
和Patient (?)id ID
:
library(dplyr)
df <- tibble(
ID = c(1,1,1,1,1),
Time = c("2020/01/01 00:00", "2020/01/01 01:00", "2020/01/01 02:00", "2020/01/01 03:00", "2020/01/01 04:00"),
AirwayStatus = c("ETT/LMA", "ETT/LMA", "Own Airway", "Own Airway", "ETT/LMA"))
df <- df %>%
group_by(ID) %>%
arrange(Time) %>%
mutate(
Extubated = ifelse(AirwayStatus == "Own Airway" & lag(AirwayStatus) == "ETT/LMA", TRUE, FALSE),
Intubated = ifelse(AirwayStatus == "ETT/LMA" & lag(AirwayStatus) == "Own Airway", TRUE, FALSE))
result <- df %>%
summarise_at(c("Extubated", "Intubated"), sum, na.rm = TRUE)
result
结果:
# A tibble: 1 x 3
ID Extubated Intubated
<dbl> <int> <int>
1 1 1 1
这样就可以按您可能会进行的患者ID分组。
不过,这比奥利弗的回答要长一些。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句