Hi,
Here is a way of doing that:
library(dplyr)
myData = structure(list(
Case_ID = c(23L, 23L, 24L, 24L),
HR = c(120L, 110L, 130L, 115L),
measurement_date = c("2020-12-10", "2020-12-13", "2020-12-15", "2020-12-13"),
admission_date = c("2020-12-10", "2020-12-10", "2020-12-09", "2020-12-09")),
class = "data.frame",
row.names = c("1", "2", "3", "4"))
myData = myData %>%
mutate(
measurement_date = as.Date(measurement_date),
admission_date = as.Date(admission_date)
)
myData = myData %>%
mutate(dateDiff = measurement_date - admission_date) %>%
group_by(Case_ID) %>%
filter(dateDiff == min(dateDiff))
myData
#> # A tibble: 2 x 5
#> # Groups: Case_ID [2]
#> Case_ID HR measurement_date admission_date dateDiff
#> <int> <int> <date> <date> <drtn>
#> 1 23 120 2020-12-10 2020-12-10 0 days
#> 2 24 115 2020-12-13 2020-12-09 4 days
Created on 2021-01-23 by the reprex package (v0.3.0)
Hope this helps,
PJ