## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----message=FALSE------------------------------------------------------------ library(rtables) library(tern) library(dplyr) ## ----message=FALSE------------------------------------------------------------ adsl <- ex_adsl adae <- ex_adae adrs <- ex_adrs ## ----------------------------------------------------------------------------- # Select variables to include in table. vars <- c("AGE", "SEX") var_labels <- c("Age (yr)", "Sex") basic_table() |> split_cols_by(var = "ARM") |> add_overall_col("All Patients") |> add_colcounts() |> analyze_vars( vars = vars, var_labels = var_labels ) |> build_table(adsl) ## ----------------------------------------------------------------------------- # Reorder the levels in the ARM variable. adsl$ARM <- factor(adsl$ARM, levels = c("B: Placebo", "A: Drug X", "C: Combination")) # Reorder the levels in the SEX variable. adsl$SEX <- factor(adsl$SEX, levels = c("M", "F", "U", "UNDIFFERENTIATED")) basic_table() |> split_cols_by(var = "ARM") |> add_overall_col("All Patients") |> add_colcounts() |> analyze_vars( vars = vars, var_labels = var_labels ) |> build_table(adsl) ## ----------------------------------------------------------------------------- # Select statistics and modify default formats. basic_table() |> split_cols_by(var = "ARM") |> add_overall_col("All Patients") |> add_colcounts() |> analyze_vars( vars = vars, var_labels = var_labels, .stats = c("n", "mean_sd", "count"), .formats = c(mean_sd = "xx.xx (xx.xx)") ) |> build_table(adsl) ## ----------------------------------------------------------------------------- lyt <- basic_table() |> split_cols_by(var = "ARM") |> add_overall_col("All Patients") |> add_colcounts() |> analyze_vars( vars = vars, var_labels = var_labels ) build_table(lyt, df = adsl |> dplyr::filter(COUNTRY == "BRA")) build_table(lyt, df = adsl |> dplyr::filter(COUNTRY == "CHN")) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ACTARM") |> add_colcounts() |> add_overall_col(label = "All Patients") |> summarize_num_patients( var = "USUBJID", .stats = c("unique", "nonunique"), .labels = c( unique = "Total number of patients with at least one AE", nonunique = "Overall total number of events" ) ) |> build_table( df = adae, alt_counts_df = adsl ) ## ----------------------------------------------------------------------------- s_num_patients(x = adae$USUBJID, labelstr = "", .N_col = nrow(adae)) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ACTARM") |> add_colcounts() |> add_overall_col(label = "All Patients") |> summarize_num_patients( var = "USUBJID", .stats = "unique_count", .labels = c(unique_count = "Total number of patients with at least one AE") ) |> build_table( df = adae, alt_counts_df = adsl ) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ACTARM") |> add_colcounts() |> add_overall_col(label = "All Patients") |> summarize_num_patients( var = "USUBJID", .stats = c("unique", "nonunique"), .labels = c( unique = "Total number of patients with at least one AE", nonunique = "Overall total number of events" ) ) |> split_rows_by( "AEBODSYS", child_labels = "visible", nested = FALSE, indent_mod = -1L, split_fun = drop_split_levels ) |> summarize_num_patients( var = "USUBJID", .stats = c("unique", "nonunique"), .labels = c( unique = "Total number of patients with at least one AE", nonunique = "Overall total number of events" ) ) |> build_table( df = adae, alt_counts_df = adsl ) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ACTARM") |> add_colcounts() |> add_overall_col(label = "All Patients") |> count_occurrences(vars = "AEDECOD") |> build_table( df = adae, alt_counts_df = adsl ) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ACTARM") |> add_colcounts() |> add_overall_col(label = "All Patients") |> summarize_num_patients( var = "USUBJID", .stats = c("unique", "nonunique"), .labels = c( unique = "Total number of patients with at least one AE", nonunique = "Overall total number of events" ) ) |> split_rows_by( "AEBODSYS", child_labels = "visible", nested = FALSE, indent_mod = -1L, split_fun = drop_split_levels ) |> summarize_num_patients( var = "USUBJID", .stats = c("unique", "nonunique"), .labels = c( unique = "Total number of patients with at least one AE", nonunique = "Overall total number of events" ) ) |> count_occurrences(vars = "AEDECOD") |> build_table( df = adae, alt_counts_df = adsl ) ## ----------------------------------------------------------------------------- # Preprocessing to select an analysis endpoint. anl <- adrs |> dplyr::filter(PARAMCD == "BESRSPI") |> dplyr::mutate(is_rsp = AVALC %in% c("CR", "PR")) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ARM") |> add_colcounts() |> estimate_proportion( vars = "is_rsp", table_names = "est_prop" ) |> build_table(anl) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ARM", ref_group = "B: Placebo") |> add_colcounts() |> estimate_proportion( vars = "is_rsp" ) |> build_table(anl) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ARM", ref_group = "B: Placebo") |> add_colcounts() |> estimate_proportion( vars = "is_rsp", method = "clopper-pearson", conf_level = 0.9 ) |> build_table(anl) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ARM", ref_group = "B: Placebo") |> add_colcounts() |> estimate_proportion_diff( vars = "is_rsp", show_labels = "visible", var_labels = "Unstratified Analysis" ) |> build_table(anl) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ARM", ref_group = "B: Placebo") |> add_colcounts() |> test_proportion_diff(vars = "is_rsp") |> build_table(anl) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ARM", ref_group = "B: Placebo") |> add_colcounts() |> test_proportion_diff( vars = "is_rsp", method = "schouten" ) |> build_table(anl) ## ----------------------------------------------------------------------------- basic_table() |> split_cols_by(var = "ARM", ref_group = "B: Placebo") |> add_colcounts() |> estimate_proportion( vars = "is_rsp", method = "clopper-pearson", conf_level = 0.9, table_names = "est_prop" ) |> estimate_proportion_diff( vars = "is_rsp", show_labels = "visible", var_labels = "Unstratified Analysis", table_names = "est_prop_diff" ) |> test_proportion_diff( vars = "is_rsp", method = "schouten", table_names = "test_prop_diff" ) |> build_table(anl)