【发布时间】:2021-07-08 21:55:55
【问题描述】:
我获得了患者入院和出院日期的数据,但有些患者例如第二次入院时入院日期比第一次出院日期短。我想检查下一次入院日期是否小于上一次出院日期,以使它们相等。这是数据
structure(list(id = c(1, 2, 2, 3, 3, 4), adm = c("2014/08/29",
"2006/06/14", "2006/08/23", "2007/01/01", "2007/01/03", "2005/07/02"
), disc = c("2014/09/08", "2006/08/31", "2006/08/31", "2007/01/07",
"2007/01/08", "2005/07/03")), class = "data.frame", row.names = c(NA,
-6L))
当我们处理我无法共享的原始数据时,我会得到这样的数据,但它适用于这个示例数据。
df <- data %>% group_by(id) %>%
mutate(across(c(adm, disc), as.Date)) %>%
mutate(adm = if_else(adm < lag(disc, default = first(adm)), lag(disc), adm))
structure(list(id2 = c(1, 2, 2, 3, 3, 4), adm2 = c("2014/08/29",
"2014/09/08", "2006/08/31", "2007/01/01", "2007/01/07", "2007/01/08"
), disc2 = c("2014/09/08", "2006/08/31", "2006/08/31", "2007/01/07",
"2007/01/08", "2005/07/03")), class = "data.frame", row.names = c(NA,
-6L))
【问题讨论】:
-
针对不同患者的两种不同标准??首先,您保留了第二个入院日期,而在另一位患者中,您保留了第一个出院日期
-
对不起,我在那里犯了一个错误。我做了改变。如果下一个入院日期小于上一个出院日期,则使它们相等。它将创建相同的入院和出院。
标签: r