library(dplyr)
library(random.cdisc.data)
library(nestcolor)
library(sparkline)
ADSL <- radsl(seed = 1)
.adsl_labels <- teal.data::col_labels(ADSL, fill = FALSE)
.char_vars_asl <- names(Filter(isTRUE, sapply(ADSL, is.character)))
.adsl_labels <- c(.adsl_labels, AGEGR1 = "Age Group")
ADSL <- ADSL %>% mutate(AGEGR1 = factor(case_when(AGE < 45 ~ "<45", AGE >= 45 ~ ">=45"))) %>% mutate_at(.char_vars_asl, factor)
teal.data::col_labels(ADSL) <- .adsl_labels
ADRS <- radrs(ADSL, seed = 1)
.adrs_labels <- teal.data::col_labels(ADRS, fill = FALSE)
ADRS <- filter(ADRS, PARAMCD == "BESRSPI" | AVISIT == "FOLLOW UP")
teal.data::col_labels(ADRS) <- .adrs_labels
stopifnot(rlang::hash(ADSL) == "a38e9170aea81f1199dfe480c202142e") # @linksto ADSL
stopifnot(rlang::hash(ADRS) == "b0d502767c7e9f7b2d9118c30570b61a") # @linksto ADRS
.raw_data <- list2env(list(ADSL = ADSL, ADRS = ADRS))
lockEnvironment(.raw_data) # @linksto .raw_data
ADRS <- dplyr::inner_join(x = ADRS, y = ADSL[, c("STUDYID", "USUBJID"), drop = FALSE], by = c("STUDYID", "USUBJID"))
library(magrittr)
ANL_1 <- ADSL %>% dplyr::select(STUDYID, USUBJID, ARM, STRATA1)
ANL_2 <- ADRS %>% dplyr::filter(PARAMCD == "BESRSPI") %>% dplyr::select(STUDYID, USUBJID, PARAMCD, AVISIT)
ANL_3 <- ADRS %>% dplyr::select(STUDYID, USUBJID, PARAMCD, AVISIT, AVALC)
ANL <- ANL_1
ANL <- dplyr::inner_join(ANL, ANL_2, by = c("STUDYID", "USUBJID"))
ANL <- dplyr::inner_join(ANL, ANL_3, by = c("STUDYID", "USUBJID", "PARAMCD", "AVISIT"))
ANL <- ANL %>% teal.data::col_relabel(ARM = "Description of Planned Arm", PARAMCD = "Parameter Code", STRATA1 = "Stratification Factor 1", AVALC = "Analysis Value (C)")
library(magrittr)
ANL_ADSL_1 <- ADSL %>% dplyr::select(STUDYID, USUBJID, ARM, STRATA1)
ANL_ADSL <- ANL_ADSL_1
ANL_ADSL <- ANL_ADSL %>% teal.data::col_relabel(ARM = "Description of Planned Arm", STRATA1 = "Stratification Factor 1")
anl <- ANL %>% dplyr::mutate(ARM = droplevels(ARM)) %>% dplyr::mutate(is_rsp = dplyr::if_else(!is.na(AVALC), AVALC %in% c("CR", "PR"), NA)) %>% dplyr::mutate(AVALC = factor(AVALC, levels = c("CR", "PR", "SD")))
ANL_ADSL <- ANL_ADSL %>% dplyr::mutate(ARM = droplevels(ARM)) %>% tern::df_explicit_na(na_level = "<Missing>")
lyt <- rtables::basic_table(show_colcounts = TRUE, title = "Table of BESRSPI for CR and PR Responders", subtitles = "Stratified by STRATA1") %>% rtables::split_cols_by(var = "ARM") %>% tern::estimate_proportion(vars = "is_rsp", conf_level = 0.95, method = "waldcc", table_names = "prop_est", denom = "N_col")
table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ANL_ADSL)
table