#' @import dplyr
exclusions <- function(
data,
id_stays_cases,
id_stays_excluded,
n_of_stays_max,
exclude_in_case_stay
){
cases <- data %>%
select(id_patient, id_stay, admission) %>%
semi_join(id_stays_cases) %>%
anti_join(., numerous_hospital_stays(data = ., max_stays = n_of_stays_max)) %>%
group_by(id_patient) %>%
arrange(id_patient, admission) %>%
slice(1L) %>%
rename(case_date = admission)
excluded <- data %>%
select(id_patient, id_stay, admission) %>%
semi_join(id_stays_excluded) %>%
select(- id_stay) %>%
group_by(id_patient) %>%
arrange(id_patient, admission) %>%
rename(exclusion_date = admission)
difference <- left_join(cases, excluded) %>%
mutate(diff = exclusion_date - case_date) %>%
mutate(diff = ifelse(is.na(diff),1,diff)) %>%
select(-exclusion_date, -case_date)
if(exclude_in_case_stay){
id_excluded <- difference %>%
filter(diff <= 0 & diff > -730 ) %>%
select(id_patient)
} else {
id_excluded <- difference %>%
filter(diff < 0 & diff > -730 ) %>%
select(id_patient)
}
cases <- anti_join(cases, id_excluded)
return(cases)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.