--- title: "Interactive Disposition Table" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Interactive Disposition Table} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( comment = "#>", collapse = TRUE, out.width = "100%", dpi = 150 ) ``` ```{r setup, message=FALSE} library(metalite.sl) library(metalite.ae) library(metalite) library(dplyr) ``` ## Build a metadata ```{r} adsl <- r2rtf::r2rtf_adsl adsl$TRTA <- adsl$TRT01A adsl$TRTA <- factor(adsl$TRTA, levels = c("Placebo", "Xanomeline Low Dose", "Xanomeline High Dose"), labels = c("Placebo", "Low Dose", "High Dose") ) # Create a variable EOSSTT indicating the end of end of study status metadata_ae <- metalite.ae::meta_ae_example() adae <- metadata_ae$data_observation # If no value populate for AEACN in AE, then generate dummy values if (length(unique(adae$AEACN)) == 1) { adae$AEACN <- sample( x = c("DOSE NOT CHANGED", "DRUG INTERRUPTED", "DRUG WITHDRAWN", "NOT APPLICABLE", "UNKNOWN"), size = length(adae$USUBJID), prob = c(0.7, 0.1, 0.05, 0.1, 0.05), replace = TRUE ) } metadata_ae$data_observation <- adae # Treatment Disposition # For discontinued due to AE adaedisc <- subset(adae[which(adae$AEACN == "DRUG WITHDRAWN"), ], select = c(USUBJID, AEACN)) adaedisc <- adaedisc[!duplicated(adaedisc), ] adsl <- merge(adsl, adaedisc, by = "USUBJID", all.x = TRUE) adsl$EOTSTT <- ifelse(adsl$AEACN == "DRUG WITHDRAWN", "Discontinued", NA) adsl$DCTREAS <- ifelse(adsl$EOTSTT == "Discontinued", "Adverse Event", NA) # sample assignment cannot be NA value adsl$EOTSTT[is.na(adsl$EOTSTT)] <- "temp" adsl$DCTREAS[is.na(adsl$DCTREAS)] <- "temp" adsl[adsl$EOTSTT != "Discontinued", "EOTSTT"] <- sample( x = c("Complete", "Discontinued", "Participants Ongoing"), size = length(adsl[adsl[["EOTSTT"]] != "Discontinued", "USUBJID"]), prob = c(0.6, 0.2, 0.2), replace = TRUE ) adsl[adsl$EOTSTT == "Discontinued" & adsl$DCTREAS != "Adverse Event", "DCTREAS"] <- sample( x = c("Withdrawal By Subject", "Lack of Efficacy", "Lost to Follow-Up"), size = length(adsl[adsl$EOTSTT == "Discontinued" & adsl$DCTREAS != "Adverse Event", "USUBJID"]), prob = c(0.3, 0.4, 0.3), replace = TRUE ) adsl[adsl[["EOTSTT"]] != "Discontinued", "DCTREAS"] <- NA # Trial Disposition adsl$EOSSTT <- adsl$EOTSTT adsl$DCSREAS <- adsl$DCTREAS adsl$DCSREAS <- ifelse(adsl$DCSREAS == "Adverse Event", "Other", adsl$DCTREAS) head(adsl) ``` ```{r} plan <- plan( analysis = "disp", population = "apat", observation = "apat", parameter = "disposition;medical-disposition" ) ``` ```{r} meta <- meta_adam( population = adsl, observation = adsl ) |> define_plan(plan = plan) |> define_population( name = "apat", group = "TRTA", subset = quote(SAFFL == "Y") ) |> define_parameter( name = "disposition", var = "EOSSTT", label = "Trial Disposition", var_lower = "DCSREAS" ) |> define_parameter( name = "medical-disposition", var = "EOTSTT", label = "Participant Study Medication Disposition", var_lower = "DCTREAS" ) |> define_analysis( name = "disp", title = "Disposition of Participant", label = "disposition table" ) |> meta_build() ``` ## Interactive Disposition ```{r} react_disposition( metadata_sl = meta, metadata_ae = metadata_ae, width = 1200 ) ```