我有关于先前入院后30天内再次入院的患者的数据。许多患者会多次入院,但是,只有在入院前30天内,我们才将其编码为入院。
这里是一个例子:
name stay at hospital admitdate readmission
john doe 1 1/1/2018 no
john doe 2 1/21/2018 yes
john doe 3 4/2/2018 no
john doe 4 10/2/2018 no
我正在寻找readmission =是的子集行,以及具有readmission = no的行,其中准入日期最接近该行的readmission =是。
在此示例中,这意味着我只希望对前两行进行子集化。我想对第二行进行子集化,因为readmission =“ yes”,然后我对第一行进行子集化,因为入学日期1/1/2018最接近readmission =“ yes”行的入学日期(入学日期1/21 / 2018)。
df <- df
df1 <- df[df$Readmission == "no", ]
df2 <- aggregate(df1$Date, by = list(df$Name), FUN = "max")
df3 <- rbind(df[df$Readmission == "yes", ], df2)
这不起作用,因为它将重新提交=“否”的“最大”日期拉为(停留4),但我希望它拉为1。
我想输出给我这两行的数据集:
name stay at hospital admitdate readmission
john doe 1 1/1/2018 no
john doe 2 1/21/2018 yes