TLG Catalog - Dev
  • Dev
    • Stable
  1. Tables
  2. Efficacy
  3. AOVT03
  • Introduction

  • Tables
    • ADA
      • ADAT01
      • ADAT02
      • ADAT03
      • ADAT04A
      • ADAT04B
    • Adverse Events
      • AET01
      • AET01_AESI
      • AET02
      • AET02_SMQ
      • AET03
      • AET04
      • AET04_PI
      • AET05
      • AET05_ALL
      • AET06
      • AET06_SMQ
      • AET07
      • AET09
      • AET09_SMQ
      • AET10
    • Concomitant Medications
      • CMT01
      • CMT01A
      • CMT01B
      • CMT02_PT
    • Deaths
      • DTHT01
    • Demography
      • DMT01
    • Disclosures
      • DISCLOSUREST01
      • EUDRAT01
      • EUDRAT02
    • Disposition
      • DST01
      • PDT01
      • PDT02
    • ECG
      • EGT01
      • EGT02
      • EGT03
      • EGT04
      • EGT05_QTCAT
    • Efficacy
      • AOVT01
      • AOVT02
      • AOVT03
      • CFBT01
      • CMHT01
      • COXT01
      • COXT02
      • DORT01
      • LGRT02
      • MMRMT01
      • ONCT05
      • RATET01
      • RBMIT01
      • RSPT01
      • TTET01
    • Exposure
      • EXT01
    • Lab Results
      • LBT01
      • LBT02
      • LBT03
      • LBT04
      • LBT05
      • LBT06
      • LBT07
      • LBT08
      • LBT09
      • LBT10
      • LBT10_BL
      • LBT11
      • LBT11_BL
      • LBT12
      • LBT12_BL
      • LBT13
      • LBT14
      • LBT15
    • Medical History
      • MHT01
    • Pharmacokinetic
      • PKCT01
      • PKPT02
      • PKPT03
      • PKPT04
      • PKPT05
      • PKPT06
      • PKPT07
      • PKPT08
      • PKPT11
    • Risk Management Plan
      • RMPT01
      • RMPT03
      • RMPT04
      • RMPT05
      • RMPT06
    • Safety
      • ENTXX
    • Vital Signs
      • VST01
      • VST02
  • Listings
    • ADA
      • ADAL02
    • Adverse Events
      • AEL01
      • AEL01_NOLLT
      • AEL02
      • AEL02_ED
      • AEL03
      • AEL04
    • Concomitant Medications
      • CML01
      • CML02A_GL
      • CML02B_GL
    • Development Safety Update Report
      • DSUR4
    • Disposition
      • DSL01
      • DSL02
    • ECG
      • EGL01
    • Efficacy
      • ONCL01
    • Exposure
      • EXL01
    • Lab Results
      • LBL01
      • LBL01_RLS
      • LBL02A
      • LBL02A_RLS
      • LBL02B
    • Medical History
      • MHL01
    • Pharmacokinetic
      • ADAL01
      • PKCL01
      • PKCL02
      • PKPL01
      • PKPL02
      • PKPL04
    • Vital Signs
      • VSL01
  • Graphs
    • Efficacy
      • FSTG01
      • FSTG02
      • KMG01
      • MMRMG01
      • MMRMG02
    • Other
      • BRG01
      • BWG01
      • CIG01
      • IPPG01
      • LTG01
      • MNG01
    • Pharmacokinetic
      • PKCG01
      • PKCG02
      • PKCG03
      • PKPG01
      • PKPG02
      • PKPG03
      • PKPG04
      • PKPG06

  • Appendix
    • Reproducibility

  • Index

On this page

  • Output
  • Reproducibility
    • Timestamp
    • Session Info
    • .lock file
  • Edit this page
  • Report an issue
  1. Tables
  2. Efficacy
  3. AOVT03

AOVT03

ANCOVA with Consideration of Interaction


Output

This example will focus on data from multiple visits and take the interaction between visits and arms into consideration.

  • Standard Table
  • Data Setup
  • Preview
  • Try this using WebR
Code
result <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARMCD", ref_group = "ARM A") %>%
  split_rows_by("PARAM", split_fun = drop_split_levels) %>%
  summarize_ancova(
    vars = "CHG",
    variables = list(arm = "ARMCD", covariates = c("BASE", "AVISIT", "AVISIT*ARMCD")),
    conf_level = 0.95,
    var_labels = "WEEK 1 DAY 8",
    table_names = "WEEK 1 DAY 8",
    interaction_y = "WEEK 1 DAY 8",
    interaction_item = "AVISIT"
  ) %>%
  summarize_ancova(
    vars = "CHG",
    variables = list(arm = "ARMCD", covariates = c("BASE", "AVISIT", "AVISIT*ARMCD")),
    conf_level = 0.95,
    var_labels = "WEEK 2 DAY 15",
    table_names = "WEEK 2 DAY 15",
    interaction_y = "WEEK 2 DAY 15",
    interaction_item = "AVISIT"
  ) %>%
  summarize_ancova(
    vars = "CHG",
    variables = list(arm = "ARMCD", covariates = c("BASE", "AVISIT", "AVISIT*ARMCD")),
    conf_level = 0.95,
    var_labels = "WEEK 5 DAY 36",
    table_names = "WEEK 5 DAY 36",
    interaction_y = "WEEK 5 DAY 36",
    interaction_item = "AVISIT"
  ) %>%
  build_table(adqs_in, alt_counts_df = adsl)

result
                                    ARM A        ARM B           ARM C    
                                   (N=134)      (N=134)         (N=132)   
——————————————————————————————————————————————————————————————————————————
BFI All Questions                                                         
  WEEK 1 DAY 8                                                            
    n                                68           73              62      
    Adjusted Mean                   4.34         5.96            3.90     
    Difference in Adjusted Means                 1.62            -0.44    
      95% CI                                 (-1.75, 4.98)   (-3.94, 3.06)
      p-value                                   0.3460          0.8059    
  WEEK 2 DAY 15                                                           
    n                                68           73              62      
    Adjusted Mean                   12.99        11.23           9.86     
    Difference in Adjusted Means                 -1.76           -3.13    
      95% CI                                 (-5.12, 1.60)   (-6.64, 0.37)
      p-value                                   0.3048          0.0795    
  WEEK 5 DAY 36                                                           
    n                                68           73              62      
    Adjusted Mean                   23.88        23.08           28.21    
    Difference in Adjusted Means                 -0.81           4.33     
      95% CI                                 (-4.17, 2.56)   (0.83, 7.83) 
      p-value                                   0.6383          0.0155    
Fatigue Interference                                                      
  WEEK 1 DAY 8                                                            
    n                                68           73              62      
    Adjusted Mean                   5.97         5.19            5.21     
    Difference in Adjusted Means                 -0.78           -0.76    
      95% CI                                 (-4.17, 2.61)   (-4.30, 2.78)
      p-value                                   0.6522          0.6729    
  WEEK 2 DAY 15                                                           
    n                                68           73              62      
    Adjusted Mean                   11.39        9.42            9.55     
    Difference in Adjusted Means                 -1.96           -1.84    
      95% CI                                 (-5.35, 1.43)   (-5.37, 1.70)
      p-value                                   0.2560          0.3084    
  WEEK 5 DAY 36                                                           
    n                                68           73              62      
    Adjusted Mean                   22.79        25.37           23.43    
    Difference in Adjusted Means                 2.58            0.64     
      95% CI                                 (-0.81, 5.97)   (-2.89, 4.18)
      p-value                                   0.1353          0.7212    
WarningExperimental use!

WebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.

Code
library(tern)
library(dplyr)

adsl <- random.cdisc.data::cadsl
adqs <- random.cdisc.data::cadqs

adqs_in <- adqs %>%
  filter(AVISIT %in% c("WEEK 1 DAY 8", "WEEK 2 DAY 15", "WEEK 5 DAY 36")) %>%
  droplevels() %>%
  filter(PARAM %in% c("BFI All Questions", "Fatigue Interference")) %>%
  mutate(CHG = ifelse(BMEASIFL == "Y", CHG, NA)) # only analyze evaluable population

Reproducibility

Timestamp

[1] "2026-06-13 18:13:37 UTC"

Session Info

─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.2 (2025-10-31)
 os       Ubuntu 24.04.4 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Etc/UTC
 date     2026-06-13
 pandoc   3.9 @ /usr/bin/ (via rmarkdown)
 quarto   1.9.38 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package           * version     date (UTC) lib source
 backports           1.5.1       2026-04-03 [1] CRAN (R 4.5.2)
 brio                1.1.5       2024-04-24 [1] CRAN (R 4.5.2)
 broom               1.0.13      2026-05-14 [1] CRAN (R 4.5.2)
 checkmate           2.3.4       2026-02-03 [1] CRAN (R 4.5.2)
 cli                 3.6.6       2026-04-09 [1] CRAN (R 4.5.2)
 coda                0.19-4.1    2024-01-31 [1] CRAN (R 4.5.2)
 codetools           0.2-20      2024-03-31 [2] CRAN (R 4.5.2)
 curl                7.1.0       2026-04-22 [1] CRAN (R 4.5.2)
 dichromat           2.0-0.1     2022-05-02 [1] CRAN (R 4.5.2)
 digest              0.6.39      2025-11-19 [1] CRAN (R 4.5.2)
 dplyr             * 1.2.1       2026-04-03 [1] CRAN (R 4.5.2)
 emmeans             2.0.3       2026-04-09 [1] CRAN (R 4.5.2)
 estimability        1.5.1       2024-05-12 [1] CRAN (R 4.5.2)
 evaluate            1.0.5       2025-08-27 [1] CRAN (R 4.5.2)
 farver              2.1.2       2024-05-13 [1] CRAN (R 4.5.2)
 fastmap             1.2.0       2024-05-15 [1] CRAN (R 4.5.2)
 formatters        * 0.5.12.9003 2026-05-21 [1] https://p~
 generics            0.1.4       2025-05-09 [1] CRAN (R 4.5.2)
 ggplot2             4.0.3       2026-04-22 [1] CRAN (R 4.5.2)
 glue                1.8.1       2026-04-17 [1] CRAN (R 4.5.2)
 gtable              0.3.6       2024-10-25 [1] CRAN (R 4.5.2)
 htmltools           0.5.9       2025-12-04 [1] CRAN (R 4.5.2)
 htmlwidgets         1.6.4       2023-12-06 [1] CRAN (R 4.5.2)
 jsonlite            2.0.0       2025-03-27 [1] CRAN (R 4.5.2)
 knitr               1.51        2025-12-20 [1] CRAN (R 4.5.2)
 lattice             0.22-9      2026-02-09 [2] CRAN (R 4.5.2)
 lifecycle           1.0.5       2026-01-08 [1] CRAN (R 4.5.2)
 magrittr          * 2.0.5       2026-04-04 [1] CRAN (R 4.5.2)
 Matrix              1.7-5       2026-03-21 [1] CRAN (R 4.5.2)
 mvtnorm             1.4-1       2026-06-06 [1] RSPM
 nestcolor           0.1.3.9000  2025-01-21 [1] https://p~
 otel                0.2.0       2025-08-29 [1] CRAN (R 4.5.2)
 pillar              1.11.1      2025-09-17 [1] CRAN (R 4.5.2)
 pkgcache            2.2.5       2026-04-09 [1] CRAN (R 4.5.2)
 pkgconfig           2.0.3       2019-09-22 [1] CRAN (R 4.5.2)
 processx            3.9.0       2026-04-22 [1] CRAN (R 4.5.2)
 ps                  1.9.3       2026-04-20 [1] CRAN (R 4.5.2)
 purrr               1.2.2       2026-04-10 [1] CRAN (R 4.5.2)
 R6                  2.6.1       2025-02-15 [1] CRAN (R 4.5.2)
 random.cdisc.data   0.3.16.9007 2025-11-13 [1] https://p~
 rbibutils           2.4.1       2026-01-21 [1] CRAN (R 4.5.2)
 RColorBrewer        1.1-3       2022-04-03 [1] CRAN (R 4.5.2)
 Rdpack              2.6.6       2026-02-08 [1] CRAN (R 4.5.2)
 rlang               1.2.0       2026-04-06 [1] CRAN (R 4.5.2)
 rmarkdown           2.31        2026-03-26 [1] CRAN (R 4.5.2)
 rtables           * 0.6.16.9001 2026-05-21 [1] https://p~
 S7                  0.2.2       2026-04-22 [1] CRAN (R 4.5.2)
 scales              1.4.0       2025-04-24 [1] CRAN (R 4.5.2)
 sessioninfo         1.2.4       2026-06-04 [1] CRAN (R 4.5.2)
 stringi             1.8.7       2025-03-27 [1] CRAN (R 4.5.2)
 stringr             1.6.0       2025-11-04 [1] CRAN (R 4.5.2)
 survival            3.8-6       2026-01-16 [2] CRAN (R 4.5.2)
 tern              * 0.9.10.9012 2026-06-11 [1] https://p~
 testthat            3.3.2       2026-01-11 [1] CRAN (R 4.5.2)
 tibble              3.3.1       2026-01-11 [1] CRAN (R 4.5.2)
 tidyr               1.3.2       2025-12-19 [1] CRAN (R 4.5.2)
 tidyselect          1.2.1       2024-03-11 [1] CRAN (R 4.5.2)
 vctrs               0.7.3       2026-04-11 [1] CRAN (R 4.5.2)
 xfun                0.58        2026-06-01 [1] CRAN (R 4.5.2)
 xtable              1.8-8       2026-02-22 [1] CRAN (R 4.5.2)
 yaml                2.3.12      2025-12-10 [1] CRAN (R 4.5.2)

 [1] /usr/local/lib/R/site-library
 [2] /usr/local/lib/R/library
 [3] /github/home/R/x86_64-pc-linux-gnu-library/4.5
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

.lock file

Download the .lock file and use renv::restore() on it to recreate environment used to generate this website.

Download

AOVT02
CFBT01
Source Code
---
title: AOVT03
subtitle: ANCOVA with Consideration of Interaction
---

------------------------------------------------------------------------

{{< include ../../_utils/envir_hook.qmd >}}

```{r setup, echo = FALSE, warning = FALSE, message = FALSE}
library(tern)
library(dplyr)

adsl <- random.cdisc.data::cadsl
adqs <- random.cdisc.data::cadqs

adqs_in <- adqs %>%
  filter(AVISIT %in% c("WEEK 1 DAY 8", "WEEK 2 DAY 15", "WEEK 5 DAY 36")) %>%
  droplevels() %>%
  filter(PARAM %in% c("BFI All Questions", "Fatigue Interference")) %>%
  mutate(CHG = ifelse(BMEASIFL == "Y", CHG, NA)) # only analyze evaluable population
```

```{r include = FALSE}
webr_code_labels <- c("setup")
```

{{< include ../../_utils/webr_no_include.qmd >}}

## Output

This example will focus on data from multiple visits and take the interaction between visits and arms into consideration.

:::: panel-tabset
## Standard Table

::: {.panel-tabset .nav-justified group="webr"}
## {{< fa regular file-lines sm fw >}} Preview

```{r variant1, test = list(result_v1 = "result")}
result <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARMCD", ref_group = "ARM A") %>%
  split_rows_by("PARAM", split_fun = drop_split_levels) %>%
  summarize_ancova(
    vars = "CHG",
    variables = list(arm = "ARMCD", covariates = c("BASE", "AVISIT", "AVISIT*ARMCD")),
    conf_level = 0.95,
    var_labels = "WEEK 1 DAY 8",
    table_names = "WEEK 1 DAY 8",
    interaction_y = "WEEK 1 DAY 8",
    interaction_item = "AVISIT"
  ) %>%
  summarize_ancova(
    vars = "CHG",
    variables = list(arm = "ARMCD", covariates = c("BASE", "AVISIT", "AVISIT*ARMCD")),
    conf_level = 0.95,
    var_labels = "WEEK 2 DAY 15",
    table_names = "WEEK 2 DAY 15",
    interaction_y = "WEEK 2 DAY 15",
    interaction_item = "AVISIT"
  ) %>%
  summarize_ancova(
    vars = "CHG",
    variables = list(arm = "ARMCD", covariates = c("BASE", "AVISIT", "AVISIT*ARMCD")),
    conf_level = 0.95,
    var_labels = "WEEK 5 DAY 36",
    table_names = "WEEK 5 DAY 36",
    interaction_y = "WEEK 5 DAY 36",
    interaction_item = "AVISIT"
  ) %>%
  build_table(adqs_in, alt_counts_df = adsl)

result
```

```{r include = FALSE}
webr_code_labels <- c("variant1")
```

{{< include ../../_utils/webr.qmd >}}
:::

## Data Setup

```{r setup}
#| code-fold: show
```
::::

{{< include ../../_utils/save_results.qmd >}}

{{< include ../../repro.qmd >}}

Made with ❤️ by the NEST Team

  • Edit this page
  • Report an issue
Cookie Preferences