Подмножество данных на основе дат из нескольких строк - PullRequest
1 голос
/ 26 марта 2019

У меня есть данные о пациентах, которые были повторно госпитализированы в течение 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, и строки с readmission = no с ближайшей датой допуска к той строке, где readmission = yes.

Для этого примера это означает, что я хотел бы подмножество только первых двух строк. Я хочу поднастроить строку два, потому что readmission = "yes", а затем я хочу поднастроить строку 1, потому что дата приема 01.01.2008 ближе к дате приема из строки 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
...