首页 > 解决方案 > 基于多行日期的子集数据

问题描述

我有关于在该医院入院后 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 = "yes" 然后我想对第 1 行进行子集化,因为录取日期 2018 年 1 月 1 日最接近 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

标签: rdatesubset

解决方案


推荐阅读