R 基于多行中的日期偏差的子集数据

R 基于多行中的日期偏差的子集数据,r,date,subset,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

我有一些患者的数据,这些患者在上次入院后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
我正在寻找重新接纳=yes的行和重新接纳=no的行的子集,其中重新接纳=yes的行与该行最近的接纳日期

对于这个例子,这意味着我只想子集前两行。我想对第二行进行子集划分,因为重新入学=“是”,然后我想对第1行进行子集划分,因为2018年1月1日的入学日期最接近于重新入学=“是”行(2018年1月21日的入学日期)


只是出于好奇,这是你的实际情况吗?或者您可能会有多个观察,其中
readmission==“yes”
,并且您会寻找与该观察最接近的观察结果。我认为这对于能够为您提供一个通用的解决方案和一个仅用于您的示例的解决方案来说有点重要。我将有多个观察结果,其中重新接纳=“是”,我正在寻找最接近的观察结果。只是出于好奇,这是您实际情况的程度吗?或者您可能会有多个观察,其中
readmission==“yes”
,并且您会寻找与该观察最接近的观察结果。我认为这对于能够为您提供一个通用的解决方案与仅针对您的示例的解决方案来说有点重要。我将有多个观察结果,其中重新接纳==“是”,我正在寻找最接近的观察结果。
df <- df
df1 <- df[df$Readmission == "no", ]
df2 <- aggregate(df1$Date, by = list(df$Name), FUN = "max")
df3 <- rbind(df[df$Readmission == "yes", ], df2)
name    stay at hospital   admitdate    readmission
john doe    1             1/1/2018       no
john doe    2             1/21/2018      yes