#' Extract negative controls
#'
#' @param drug_medications A tibble
#' @param num_rxcui_ingr A number
#' @param num_samples A number
#' @param str_negative_controls A string
#' @return A tibble \code{drug_negative_controls}
#' @export
extract_negative_controls <- function(drug_medications, num_rxcui_ingr, num_samples, str_negative_controls) {
# At least 1% of cases exposed to `rxcui_ingr`
cases_drug_medications <-
drug_medications %>%
filter(groupc == 1)
one_percent_cohort <- round((0.01)*(n_distinct(cases_drug_medications$person_id)), 0)
cases_rxcui_ingr <-
cases_drug_medications %>%
group_by(rxcui_ingr) %>%
summarise(n = n()) %>%
arrange(desc(n))
cases_rxcui_ingr <-
cases_rxcui_ingr %>%
filter(n > one_percent_cohort)
# Remove object drug
cases_rxcui_ingr <-
cases_rxcui_ingr %>%
filter(rxcui_ingr != num_rxcui_ingr)
df_negative_controls <- read_csv(str_negative_controls, col_types = cols())
drug_negative_controls <-
inner_join(
df_negative_controls,
cases_rxcui_ingr,
by = 'rxcui_ingr'
)
# Sample 30 drugs randomly
drug_negative_controls <-
sample_n(drug_negative_controls, num_samples, replace = FALSE)
# Label as negative_control
drug_negative_controls$group = "negative_control"
return(drug_negative_controls)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.