根据多个行的日期对数据进行子集

时间:2019-03-26 20:33:00

标签: r date subset

我有关于先前入院后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

0 个答案:

没有答案