## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(siera)

## ----high-level program overview----------------------------------------------
# Section 1: Program header

# Section 2: Load libraries

# Section 3: Load ADaM datasets

# Section 4a (first Analysis): Code to calculate results as an ARD

# Section 4b (subsequent Analyses): Code to calculate results as an ARD

# Section 5: Append Analysis-level ARDs

## ----Analysis Sets, message=FALSE, eval=FALSE---------------------------------
# overlap <- intersect(names(ADSL), names(ADAE))
# overlapfin <- setdiff(overlap, "USUBJID")
# 
# df_pop <- dplyr::filter(
#   ADSL,
#   SAFFL == "Y"
# ) |>
#   merge(ADAE |> dplyr::select(-dplyr::all_of(overlapfin)),
#     by = "USUBJID",
#     all = FALSE
#   )
# 
# df_poptot <- dplyr::filter(
#   ADSL,
#   SAFFL == "Y"
# )

## ----Data Subsets, message=FALSE, eval=FALSE----------------------------------
# df2_An07_03_SerTEAE_Summ_ByTrt <- df_pop |>
#   dplyr::filter(TRTEMFL == "Y" & AESER == "Y")

## ----MethodExample, eval=FALSE------------------------------------------------
# # intermediate step: Prepare Denominator Dataset for `cards` function
# denom_dataset <- df2_An01_05_SAF_Summ_ByTrt |>
#   dplyr::select(TRT01A)
# 
# # intermediate step: Prepare input dataset for `cards` function
# in_data <- df2_An03_05_Race_Summ_ByTrt |>
#   dplyr::distinct(TRT01A, RACE, USUBJID) |>
#   dplyr::mutate(dummy = "dummyvar")
# 
# # pass calculate subjects counts and % (based on big N) grouped by treatment and race
# cards::ard_categorical(
#   data = in_data,
#   by = c("TRT01A", "RACE"),
#   variables = "dummy",
#   denominator = denom_dataset
# )
# 
# # select relevant statistics as defined by the Method, and assign operation Ids
# df3_An03_05_Race_Summ_ByTrt <- df3_An03_05_Race_Summ_ByTrt |>
#   dplyr::filter(stat_name %in% c("n", "p")) |>
#   dplyr::mutate(operationid = dplyr::case_when(
#     stat_name == "n" ~ "Mth01_1_n",
#     stat_name == "p" ~ "Mth01_2_pct"
#   ))
# 
# # add ARS metadata IDs to the dataset to enable tracing each result back to ARS metadata
# df3_An03_05_Race_Summ_ByTrt <- df3_An03_05_Race_Summ_ByTrt |>
#   dplyr::mutate(
#     AnalysisId = "An03_05_Race_Summ_ByTrt",
#     MethodId = "Mth01",
#     OutputId = "Out14-1-1"
#   )

## ----append, message=FALSE, eval=FALSE----------------------------------------
# # combine analyses to create ARD ----
# ARD <- dplyr::bind_rows(
#   df3_An01_05_SAF_Summ_ByTrt,
#   df3_An03_01_Age_Summ_ByTrt,
#   df3_An03_01_Age_Comp_ByTrt,
#   df3_An03_02_AgeGrp_Summ_ByTrt,
#   df3_An03_02_AgeGrp_Comp_ByTrt,
#   df3_An03_03_Sex_Summ_ByTrt,
#   df3_An03_03_Sex_Comp_ByTrt,
#   df3_An03_04_Ethnic_Summ_ByTrt,
#   df3_An03_04_Ethnic_Comp_ByTrt,
#   df3_An03_05_Race_Summ_ByTrt,
#   df3_An03_05_Race_Comp_ByTrt,
#   df3_An03_06_Height_Summ_ByTrt,
#   df3_An03_06_Height_Comp_ByTrt
# )

## ----example ARD script, message=FALSE, warning=FALSE, eval=FALSE-------------
# # see location of script:
# ARD_script_example("ARD_Out14-1-1.R")
# ARD_script_example("ARD_Out14-3-1-1.R")

## ----open ARD script, message=FALSE, warning=FALSE, eval=FALSE----------------
# # open script to inspect:
# file.edit(ARD_script_example("ARD_Out14-1-1.R"))
# file.edit(ARD_script_example("ARD_Out14-3-1-1.R"))

## ----run ARD script, message=FALSE, warning=FALSE, eval=FALSE-----------------
# # run script locally:
# source(ARD_script_example("ARD_Out14-1-1.R"))
# source(ARD_script_example("ARD_Out14-3-1-1.R"))

