Below is a step-by-step guide demonstrating how to use {rtables.officer} for creating and exporting a clinical trial results table.
library(tern)
library(dplyr)
library(rtables.officer)
# Load example datasets
adsl <- formatters::ex_adae
adlb <- formatters::ex_adlb
# Convert character variables to factors and handle missing levels
adsl <- df_explicit_na(adsl)
adlb <- df_explicit_na(adlb)
# Create a temporary file for the output
tf <- tempfile(fileext = ".docx")adlb_f <- adlb %>%
  dplyr::filter(
    PARAM %in% c("Alanine Aminotransferase Measurement", "C-Reactive Protein Measurement") &
      !(ACTARM == "B: Placebo" & AVISIT == "WEEK 1 DAY 8") &
      AVISIT != "SCREENING"
  )afun <- function(x, .var, .spl_context, ...) {
  n_fun <- sum(!is.na(x), na.rm = TRUE)
  mean_sd_fun <- if (n_fun == 0) c(NA, NA) else c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE))
  median_fun <- if (n_fun == 0) NA else median(x, na.rm = TRUE)
  min_max_fun <- if (n_fun == 0) c(NA, NA) else c(min(x), max(x))
  is_chg <- .var == "CHG"
  is_baseline <- .spl_context$value[which(.spl_context$split == "AVISIT")] == "BASELINE"
  if (is_baseline && is_chg) n_fun <- mean_sd_fun <- median_fun <- min_max_fun <- NULL
  in_rows(
    "n" = n_fun,
    "Mean (SD)" = mean_sd_fun,
    "Median" = median_fun,
    "Min - Max" = min_max_fun,
    .formats = list("n" = "xx", "Mean (SD)" = "xx.xx (xx.xx)", "Median" = "xx.xx", "Min - Max" = "xx.xx - xx.xx"),
    .format_na_strs = list("n" = "NE", "Mean (SD)" = "NE (NE)", "Median" = "NE", "Min - Max" = "NE - NE")
  )
}lyt <- basic_table() %>%
  split_cols_by("ACTARM", show_colcounts = TRUE, split_fun = keep_split_levels(levels(adlb_f$ACTARM)[c(1, 2)])) %>%
  split_rows_by("PARAM",
    split_fun = drop_split_levels, label_pos = "topleft",
    split_label = obj_label(adlb_f$PARAM), page_by = TRUE
  ) %>%
  split_rows_by("AVISIT",
    split_fun = drop_split_levels, label_pos = "topleft",
    split_label = obj_label(adlb_f$AVISIT)
  ) %>%
  split_cols_by_multivar(
    vars = c("AVAL", "CHG"),
    varlabels = c("Value at Visit", "Change from Baseline")
  ) %>%
  analyze_colvars(afun = afun)result <- build_table(lyt, adlb_f)
result
#                                                      A: Drug X                              B: Placebo              
# Parameter                                            (N=1608)                                (N=1340)               
#   Analysis Visit                       Value at Visit   Change from Baseline   Value at Visit   Change from Baseline
# ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
# Alanine Aminotransferase Measurement                                                                                
#   BASELINE                                                                                                          
#     n                                       134                                     134                             
#     Mean (SD)                           49.57 (8.32)                            50.31 (8.34)                        
#     Median                                 49.57                                   50.15                            
#     Min - Max                          23.97 - 70.85                           26.22 - 79.12                        
#   WEEK 1 DAY 8                                                                                                      
#     n                                       134                 134                  0                   0          
#     Mean (SD)                           48.60 (7.96)       -0.97 (11.70)          NE (NE)             NE (NE)       
#     Median                                 48.42               -1.02                 NE                  NE         
#     Min - Max                          27.71 - 64.64       -25.05 - 39.39         NE - NE             NE - NE       
#   WEEK 2 DAY 15                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           49.41 (8.47)       -0.16 (12.01)        50.25 (8.53)       -0.06 (12.53)    
#     Median                                 48.34                0.08               49.97               -0.74        
#     Min - Max                          24.34 - 71.06       -26.31 - 34.35      24.38 - 71.07       -36.75 - 28.78   
#   WEEK 3 DAY 22                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           50.26 (7.51)        0.69 (11.52)        49.67 (7.74)       -0.63 (11.21)    
#     Median                                 50.09                0.90               49.75               -0.36        
#     Min - Max                          33.04 - 68.98       -32.07 - 32.51      33.71 - 66.49       -37.04 - 30.00   
#   WEEK 4 DAY 29                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           50.70 (9.17)        1.13 (13.01)        49.26 (8.69)       -1.04 (12.59)    
#     Median                                 49.53                0.71               48.30               -2.37        
#     Min - Max                          29.75 - 78.99       -34.00 - 37.59      32.99 - 73.97       -33.16 - 34.47   
#   WEEK 5 DAY 36                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           50.84 (7.85)        1.26 (12.11)        49.72 (8.45)       -0.59 (12.63)    
#     Median                                 51.44                1.85               50.23                1.46        
#     Min - Max                          31.89 - 70.34       -32.06 - 32.18      30.64 - 68.11       -38.08 - 25.27   
# C-Reactive Protein Measurement                                                                                      
#   BASELINE                                                                                                          
#     n                                       134                                     134                             
#     Mean (SD)                           48.95 (9.44)                            50.08 (7.87)                        
#     Median                                 49.55                                   50.12                            
#     Min - Max                          28.96 - 75.23                           29.91 - 73.35                        
#   WEEK 1 DAY 8                                                                                                      
#     n                                       134                 134                  0                   0          
#     Mean (SD)                           51.86 (8.08)        2.91 (12.48)          NE (NE)             NE (NE)       
#     Median                                 51.23                2.94                 NE                  NE         
#     Min - Max                          28.47 - 72.90       -28.23 - 41.19         NE - NE             NE - NE       
#   WEEK 2 DAY 15                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           49.75 (8.27)        0.80 (12.55)        50.87 (7.42)        0.79 (10.69)    
#     Median                                 50.44                0.48               51.51                0.82        
#     Min - Max                          29.02 - 69.08       -34.08 - 30.43      30.70 - 67.70       -22.15 - 27.16   
#   WEEK 3 DAY 22                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           50.06 (8.32)        1.12 (12.36)        49.27 (7.52)       -0.81 (10.62)    
#     Median                                 49.93                3.14               48.78                0.15        
#     Min - Max                          26.70 - 69.37       -36.68 - 31.78      30.70 - 67.76       -30.71 - 29.92   
#   WEEK 4 DAY 29                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           51.61 (8.13)        2.66 (12.22)        49.47 (8.21)       -0.61 (11.10)    
#     Median                                 52.26                3.17               48.81               -1.27        
#     Min - Max                          31.45 - 71.21       -31.34 - 41.61      27.07 - 67.32       -24.90 - 23.50   
#   WEEK 5 DAY 36                                                                                                     
#     n                                       134                 134                 134                 134         
#     Mean (SD)                           49.71 (8.76)        0.76 (13.36)        50.83 (7.59)        0.75 (11.28)    
#     Median                                 49.22               -0.25               50.25                0.46        
#     Min - Max                          25.97 - 69.62       -39.98 - 33.63      33.32 - 70.27       -25.59 - 33.12Assign titles and footers:
main_title(result) <- "Alanine Aminotransferase Measurement"
subtitles(result) <- c("This is a subtitle.", "This is another subtitle.")
main_footer(result) <- "This is a demo table for illustration purpose."
prov_footer(result) <- "Program: demo_poc_docx.R\nDate: 2024-11-06\nVersion: 0.0.1\n"flextable and Export to Word Convert the
table to a flextable object and export it to a Word
document:flx_res <- tt_to_flextable(result)
export_as_docx(flx_res,
  file = tf,
  section_properties = section_properties_default(orientation = "landscape")
)
flx_resAlanine Aminotransferase Measurement  | ||||
|---|---|---|---|---|
This is a subtitle.  | ||||
This is another subtitle.  | ||||
Parameter  | A: Drug X (N=1608)  | B: Placebo (N=1340)  | ||
Analysis Visit  | Value at Visit  | Change from Baseline  | Value at Visit  | Change from Baseline  | 
Alanine Aminotransferase Measurement  | 
  | 
  | 
  | 
  | 
BASELINE  | 
  | 
  | 
  | 
  | 
n  | 134  | 
  | 134  | 
  | 
Mean (SD)  | 49.57 (8.32)  | 
  | 50.31 (8.34)  | 
  | 
Median  | 49.57  | 
  | 50.15  | 
  | 
Min - Max  | 23.97 - 70.85  | 
  | 26.22 - 79.12  | 
  | 
WEEK 1 DAY 8  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 0  | 0  | 
Mean (SD)  | 48.60 (7.96)  | -0.97 (11.70)  | NE (NE)  | NE (NE)  | 
Median  | 48.42  | -1.02  | NE  | NE  | 
Min - Max  | 27.71 - 64.64  | -25.05 - 39.39  | NE - NE  | NE - NE  | 
WEEK 2 DAY 15  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 49.41 (8.47)  | -0.16 (12.01)  | 50.25 (8.53)  | -0.06 (12.53)  | 
Median  | 48.34  | 0.08  | 49.97  | -0.74  | 
Min - Max  | 24.34 - 71.06  | -26.31 - 34.35  | 24.38 - 71.07  | -36.75 - 28.78  | 
WEEK 3 DAY 22  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.26 (7.51)  | 0.69 (11.52)  | 49.67 (7.74)  | -0.63 (11.21)  | 
Median  | 50.09  | 0.90  | 49.75  | -0.36  | 
Min - Max  | 33.04 - 68.98  | -32.07 - 32.51  | 33.71 - 66.49  | -37.04 - 30.00  | 
WEEK 4 DAY 29  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.70 (9.17)  | 1.13 (13.01)  | 49.26 (8.69)  | -1.04 (12.59)  | 
Median  | 49.53  | 0.71  | 48.30  | -2.37  | 
Min - Max  | 29.75 - 78.99  | -34.00 - 37.59  | 32.99 - 73.97  | -33.16 - 34.47  | 
WEEK 5 DAY 36  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.84 (7.85)  | 1.26 (12.11)  | 49.72 (8.45)  | -0.59 (12.63)  | 
Median  | 51.44  | 1.85  | 50.23  | 1.46  | 
Min - Max  | 31.89 - 70.34  | -32.06 - 32.18  | 30.64 - 68.11  | -38.08 - 25.27  | 
C-Reactive Protein Measurement  | 
  | 
  | 
  | 
  | 
BASELINE  | 
  | 
  | 
  | 
  | 
n  | 134  | 
  | 134  | 
  | 
Mean (SD)  | 48.95 (9.44)  | 
  | 50.08 (7.87)  | 
  | 
Median  | 49.55  | 
  | 50.12  | 
  | 
Min - Max  | 28.96 - 75.23  | 
  | 29.91 - 73.35  | 
  | 
WEEK 1 DAY 8  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 0  | 0  | 
Mean (SD)  | 51.86 (8.08)  | 2.91 (12.48)  | NE (NE)  | NE (NE)  | 
Median  | 51.23  | 2.94  | NE  | NE  | 
Min - Max  | 28.47 - 72.90  | -28.23 - 41.19  | NE - NE  | NE - NE  | 
WEEK 2 DAY 15  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 49.75 (8.27)  | 0.80 (12.55)  | 50.87 (7.42)  | 0.79 (10.69)  | 
Median  | 50.44  | 0.48  | 51.51  | 0.82  | 
Min - Max  | 29.02 - 69.08  | -34.08 - 30.43  | 30.70 - 67.70  | -22.15 - 27.16  | 
WEEK 3 DAY 22  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.06 (8.32)  | 1.12 (12.36)  | 49.27 (7.52)  | -0.81 (10.62)  | 
Median  | 49.93  | 3.14  | 48.78  | 0.15  | 
Min - Max  | 26.70 - 69.37  | -36.68 - 31.78  | 30.70 - 67.76  | -30.71 - 29.92  | 
WEEK 4 DAY 29  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 51.61 (8.13)  | 2.66 (12.22)  | 49.47 (8.21)  | -0.61 (11.10)  | 
Median  | 52.26  | 3.17  | 48.81  | -1.27  | 
Min - Max  | 31.45 - 71.21  | -31.34 - 41.61  | 27.07 - 67.32  | -24.90 - 23.50  | 
WEEK 5 DAY 36  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 49.71 (8.76)  | 0.76 (13.36)  | 50.83 (7.59)  | 0.75 (11.28)  | 
Median  | 49.22  | -0.25  | 50.25  | 0.46  | 
Min - Max  | 25.97 - 69.62  | -39.98 - 33.63  | 33.32 - 70.27  | -25.59 - 33.12  | 
This is a demo table for illustration purpose.  | ||||
Program: demo_poc_docx.R  | ||||
You can further customize your tables, such as setting column widths, handling pagination, and more.
cw <- propose_column_widths(result)
cw <- cw / sum(cw)
cw <- c(0.6, 0.1, 0.1, 0.1, 0.1)
spd <- section_properties_default(orientation = "landscape")
fin_cw <- cw * spd$page_size$width / 2 / sum(cw)
flex_tbl <- tt_to_flextable(result,
  total_page_width = spd$page_size$width / 2,
  counts_in_newline = TRUE,
  autofit_to_page = FALSE,
  bold_titles = TRUE,
  colwidths = cw
)
export_as_docx(flex_tbl, file = tf)
# Warning in FUN(X[[i]], ...): The total table width does not match the page
# width. The column widths will be resized to fit the page. Please consider
# modifying the parameter total_page_width in tt_to_flextable().
flex_tblAlanine Aminotransferase Measurement  | ||||
|---|---|---|---|---|
This is a subtitle.  | ||||
This is another subtitle.  | ||||
Parameter  | A: Drug X  | B: Placebo  | ||
Analysis Visit  | Value at Visit  | Change from Baseline  | Value at Visit  | Change from Baseline  | 
Alanine Aminotransferase Measurement  | 
  | 
  | 
  | 
  | 
BASELINE  | 
  | 
  | 
  | 
  | 
n  | 134  | 
  | 134  | 
  | 
Mean (SD)  | 49.57 (8.32)  | 
  | 50.31 (8.34)  | 
  | 
Median  | 49.57  | 
  | 50.15  | 
  | 
Min - Max  | 23.97 - 70.85  | 
  | 26.22 - 79.12  | 
  | 
WEEK 1 DAY 8  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 0  | 0  | 
Mean (SD)  | 48.60 (7.96)  | -0.97 (11.70)  | NE (NE)  | NE (NE)  | 
Median  | 48.42  | -1.02  | NE  | NE  | 
Min - Max  | 27.71 - 64.64  | -25.05 - 39.39  | NE - NE  | NE - NE  | 
WEEK 2 DAY 15  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 49.41 (8.47)  | -0.16 (12.01)  | 50.25 (8.53)  | -0.06 (12.53)  | 
Median  | 48.34  | 0.08  | 49.97  | -0.74  | 
Min - Max  | 24.34 - 71.06  | -26.31 - 34.35  | 24.38 - 71.07  | -36.75 - 28.78  | 
WEEK 3 DAY 22  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.26 (7.51)  | 0.69 (11.52)  | 49.67 (7.74)  | -0.63 (11.21)  | 
Median  | 50.09  | 0.90  | 49.75  | -0.36  | 
Min - Max  | 33.04 - 68.98  | -32.07 - 32.51  | 33.71 - 66.49  | -37.04 - 30.00  | 
WEEK 4 DAY 29  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.70 (9.17)  | 1.13 (13.01)  | 49.26 (8.69)  | -1.04 (12.59)  | 
Median  | 49.53  | 0.71  | 48.30  | -2.37  | 
Min - Max  | 29.75 - 78.99  | -34.00 - 37.59  | 32.99 - 73.97  | -33.16 - 34.47  | 
WEEK 5 DAY 36  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.84 (7.85)  | 1.26 (12.11)  | 49.72 (8.45)  | -0.59 (12.63)  | 
Median  | 51.44  | 1.85  | 50.23  | 1.46  | 
Min - Max  | 31.89 - 70.34  | -32.06 - 32.18  | 30.64 - 68.11  | -38.08 - 25.27  | 
C-Reactive Protein Measurement  | 
  | 
  | 
  | 
  | 
BASELINE  | 
  | 
  | 
  | 
  | 
n  | 134  | 
  | 134  | 
  | 
Mean (SD)  | 48.95 (9.44)  | 
  | 50.08 (7.87)  | 
  | 
Median  | 49.55  | 
  | 50.12  | 
  | 
Min - Max  | 28.96 - 75.23  | 
  | 29.91 - 73.35  | 
  | 
WEEK 1 DAY 8  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 0  | 0  | 
Mean (SD)  | 51.86 (8.08)  | 2.91 (12.48)  | NE (NE)  | NE (NE)  | 
Median  | 51.23  | 2.94  | NE  | NE  | 
Min - Max  | 28.47 - 72.90  | -28.23 - 41.19  | NE - NE  | NE - NE  | 
WEEK 2 DAY 15  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 49.75 (8.27)  | 0.80 (12.55)  | 50.87 (7.42)  | 0.79 (10.69)  | 
Median  | 50.44  | 0.48  | 51.51  | 0.82  | 
Min - Max  | 29.02 - 69.08  | -34.08 - 30.43  | 30.70 - 67.70  | -22.15 - 27.16  | 
WEEK 3 DAY 22  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.06 (8.32)  | 1.12 (12.36)  | 49.27 (7.52)  | -0.81 (10.62)  | 
Median  | 49.93  | 3.14  | 48.78  | 0.15  | 
Min - Max  | 26.70 - 69.37  | -36.68 - 31.78  | 30.70 - 67.76  | -30.71 - 29.92  | 
WEEK 4 DAY 29  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 51.61 (8.13)  | 2.66 (12.22)  | 49.47 (8.21)  | -0.61 (11.10)  | 
Median  | 52.26  | 3.17  | 48.81  | -1.27  | 
Min - Max  | 31.45 - 71.21  | -31.34 - 41.61  | 27.07 - 67.32  | -24.90 - 23.50  | 
WEEK 5 DAY 36  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 49.71 (8.76)  | 0.76 (13.36)  | 50.83 (7.59)  | 0.75 (11.28)  | 
Median  | 49.22  | -0.25  | 50.25  | 0.46  | 
Min - Max  | 25.97 - 69.62  | -39.98 - 33.63  | 33.32 - 70.27  | -25.59 - 33.12  | 
This is a demo table for illustration purpose.  | ||||
Program: demo_poc_docx.R  | ||||
flx_res <- tt_to_flextable(
  result,
  paginate = TRUE,
  titles_as_header = FALSE,
  lpp = 250,
  counts_in_newline = TRUE,
  bold_titles = TRUE,
  theme = theme_docx_default()
)
export_as_docx(flx_res, file = tf, add_page_break = TRUE)
flx_res[[1]]Parameter  | A: Drug X  | B: Placebo  | ||
|---|---|---|---|---|
Analysis Visit  | Value at Visit  | Change from Baseline  | Value at Visit  | Change from Baseline  | 
BASELINE  | 
  | 
  | 
  | 
  | 
n  | 134  | 
  | 134  | 
  | 
Mean (SD)  | 49.57 (8.32)  | 
  | 50.31 (8.34)  | 
  | 
Median  | 49.57  | 
  | 50.15  | 
  | 
Min - Max  | 23.97 - 70.85  | 
  | 26.22 - 79.12  | 
  | 
WEEK 1 DAY 8  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 0  | 0  | 
Mean (SD)  | 48.60 (7.96)  | -0.97 (11.70)  | NE (NE)  | NE (NE)  | 
Median  | 48.42  | -1.02  | NE  | NE  | 
Min - Max  | 27.71 - 64.64  | -25.05 - 39.39  | NE - NE  | NE - NE  | 
WEEK 2 DAY 15  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 49.41 (8.47)  | -0.16 (12.01)  | 50.25 (8.53)  | -0.06 (12.53)  | 
Median  | 48.34  | 0.08  | 49.97  | -0.74  | 
Min - Max  | 24.34 - 71.06  | -26.31 - 34.35  | 24.38 - 71.07  | -36.75 - 28.78  | 
WEEK 3 DAY 22  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.26 (7.51)  | 0.69 (11.52)  | 49.67 (7.74)  | -0.63 (11.21)  | 
Median  | 50.09  | 0.90  | 49.75  | -0.36  | 
Min - Max  | 33.04 - 68.98  | -32.07 - 32.51  | 33.71 - 66.49  | -37.04 - 30.00  | 
WEEK 4 DAY 29  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.70 (9.17)  | 1.13 (13.01)  | 49.26 (8.69)  | -1.04 (12.59)  | 
Median  | 49.53  | 0.71  | 48.30  | -2.37  | 
Min - Max  | 29.75 - 78.99  | -34.00 - 37.59  | 32.99 - 73.97  | -33.16 - 34.47  | 
WEEK 5 DAY 36  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 
Mean (SD)  | 50.84 (7.85)  | 1.26 (12.11)  | 49.72 (8.45)  | -0.59 (12.63)  | 
Median  | 51.44  | 1.85  | 50.23  | 1.46  | 
Min - Max  | 31.89 - 70.34  | -32.06 - 32.18  | 30.64 - 68.11  | -38.08 - 25.27  | 
This is a demo table for illustration purpose.  | ||||
Program: demo_poc_docx.R  | ||||
section_div = <chr>)tbl <- basic_table() %>%
  split_cols_by("ACTARM") %>%
  split_rows_by("PARAM", split_fun = drop_split_levels, section_div = "-") %>%
  split_rows_by("AVISIT", split_fun = drop_split_levels, section_div = " ") %>%
  split_cols_by_multivar(
    vars = c("AVAL", "CHG"), varlabels = c("Value at Visit", "Change from Baseline")
  ) %>%
  analyze_colvars(afun = afun) %>%
  build_table(adlb_f)
flx_res <- tt_to_flextable(tbl)
export_as_docx(flx_res, file = tf)
flx_res
  | A: Drug X  | B: Placebo  | C: Combination  | |||
|---|---|---|---|---|---|---|
  | Value at Visit  | Change from Baseline  | Value at Visit  | Change from Baseline  | Value at Visit  | Change from Baseline  | 
Alanine Aminotransferase Measurement  | 
  | 
  | 
  | 
  | 
  | 
  | 
BASELINE  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 
  | 134  | 
  | 132  | 
  | 
Mean (SD)  | 49.57 (8.32)  | 
  | 50.31 (8.34)  | 
  | 50.90 (7.82)  | 
  | 
Median  | 49.57  | 
  | 50.15  | 
  | 50.77  | 
  | 
Min - Max  | 23.97 - 70.85  | 
  | 26.22 - 79.12  | 
  | 27.63 - 67.45  | 
  | 
WEEK 1 DAY 8  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 0  | 0  | 132  | 132  | 
Mean (SD)  | 48.60 (7.96)  | -0.97 (11.70)  | NE (NE)  | NE (NE)  | 51.11 (7.79)  | 0.20 (10.92)  | 
Median  | 48.42  | -1.02  | NE  | NE  | 50.80  | 0.05  | 
Min - Max  | 27.71 - 64.64  | -25.05 - 39.39  | NE - NE  | NE - NE  | 29.75 - 71.40  | -27.38 - 31.08  | 
WEEK 2 DAY 15  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 49.41 (8.47)  | -0.16 (12.01)  | 50.25 (8.53)  | -0.06 (12.53)  | 48.49 (7.18)  | -2.41 (10.97)  | 
Median  | 48.34  | 0.08  | 49.97  | -0.74  | 49.22  | -0.96  | 
Min - Max  | 24.34 - 71.06  | -26.31 - 34.35  | 24.38 - 71.07  | -36.75 - 28.78  | 26.22 - 63.35  | -28.56 - 31.29  | 
WEEK 3 DAY 22  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 50.26 (7.51)  | 0.69 (11.52)  | 49.67 (7.74)  | -0.63 (11.21)  | 48.86 (7.89)  | -2.05 (11.10)  | 
Median  | 50.09  | 0.90  | 49.75  | -0.36  | 47.68  | -2.13  | 
Min - Max  | 33.04 - 68.98  | -32.07 - 32.51  | 33.71 - 66.49  | -37.04 - 30.00  | 30.39 - 66.99  | -24.65 - 22.20  | 
WEEK 4 DAY 29  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 50.70 (9.17)  | 1.13 (13.01)  | 49.26 (8.69)  | -1.04 (12.59)  | 49.65 (7.99)  | -1.25 (10.62)  | 
Median  | 49.53  | 0.71  | 48.30  | -2.37  | 49.77  | -1.29  | 
Min - Max  | 29.75 - 78.99  | -34.00 - 37.59  | 32.99 - 73.97  | -33.16 - 34.47  | 25.52 - 68.62  | -24.26 - 30.60  | 
WEEK 5 DAY 36  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 50.84 (7.85)  | 1.26 (12.11)  | 49.72 (8.45)  | -0.59 (12.63)  | 49.98 (8.34)  | -0.92 (11.14)  | 
Median  | 51.44  | 1.85  | 50.23  | 1.46  | 51.01  | -1.98  | 
Min - Max  | 31.89 - 70.34  | -32.06 - 32.18  | 30.64 - 68.11  | -38.08 - 25.27  | 24.82 - 65.57  | -31.24 - 33.22  | 
C-Reactive Protein Measurement  | 
  | 
  | 
  | 
  | 
  | 
  | 
BASELINE  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 
  | 134  | 
  | 132  | 
  | 
Mean (SD)  | 48.95 (9.44)  | 
  | 50.08 (7.87)  | 
  | 50.21 (8.41)  | 
  | 
Median  | 49.55  | 
  | 50.12  | 
  | 49.84  | 
  | 
Min - Max  | 28.96 - 75.23  | 
  | 29.91 - 73.35  | 
  | 30.45 - 72.25  | 
  | 
WEEK 1 DAY 8  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 0  | 0  | 132  | 132  | 
Mean (SD)  | 51.86 (8.08)  | 2.91 (12.48)  | NE (NE)  | NE (NE)  | 50.25 (9.37)  | 0.05 (13.07)  | 
Median  | 51.23  | 2.94  | NE  | NE  | 50.70  | -0.30  | 
Min - Max  | 28.47 - 72.90  | -28.23 - 41.19  | NE - NE  | NE - NE  | 27.78 - 71.18  | -32.05 - 30.13  | 
WEEK 2 DAY 15  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 49.75 (8.27)  | 0.80 (12.55)  | 50.87 (7.42)  | 0.79 (10.69)  | 49.12 (8.25)  | -1.09 (11.12)  | 
Median  | 50.44  | 0.48  | 51.51  | 0.82  | 48.69  | -1.41  | 
Min - Max  | 29.02 - 69.08  | -34.08 - 30.43  | 30.70 - 67.70  | -22.15 - 27.16  | 20.63 - 70.52  | -30.24 - 19.81  | 
WEEK 3 DAY 22  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 50.06 (8.32)  | 1.12 (12.36)  | 49.27 (7.52)  | -0.81 (10.62)  | 49.80 (7.65)  | -0.41 (12.05)  | 
Median  | 49.93  | 3.14  | 48.78  | 0.15  | 49.48  | -1.16  | 
Min - Max  | 26.70 - 69.37  | -36.68 - 31.78  | 30.70 - 67.76  | -30.71 - 29.92  | 30.14 - 72.89  | -28.84 - 34.60  | 
WEEK 4 DAY 29  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 51.61 (8.13)  | 2.66 (12.22)  | 49.47 (8.21)  | -0.61 (11.10)  | 49.76 (7.60)  | -0.45 (11.57)  | 
Median  | 52.26  | 3.17  | 48.81  | -1.27  | 50.17  | 0.73  | 
Min - Max  | 31.45 - 71.21  | -31.34 - 41.61  | 27.07 - 67.32  | -24.90 - 23.50  | 32.09 - 68.46  | -32.97 - 32.80  | 
WEEK 5 DAY 36  | 
  | 
  | 
  | 
  | 
  | 
  | 
n  | 134  | 134  | 134  | 134  | 132  | 132  | 
Mean (SD)  | 49.71 (8.76)  | 0.76 (13.36)  | 50.83 (7.59)  | 0.75 (11.28)  | 49.06 (7.66)  | -1.15 (11.62)  | 
Median  | 49.22  | -0.25  | 50.25  | 0.46  | 49.20  | -1.48  | 
Min - Max  | 25.97 - 69.62  | -39.98 - 33.63  | 33.32 - 70.27  | -25.59 - 33.12  | 32.20 - 73.64  | -33.52 - 31.58  |