Cardinal
  • Home
  • Template Catalog
  • About
  • Resources
  • Help
    • Getting Started
    • Report a Bug
    • FAQ

Laboratory Test Results and Change from Baseline by Visit

Roche LBT01

table
Roche
parallel-group
change from baseline
  • Table Preview
  • Setup
  • Build Table
  • Build ARD

Code
# Load libraries & data -------------------------------------
library(gtsummary)
library(dplyr)
library(crane)

adsl <- pharmaverseadam::adsl
adlb <- pharmaverseadam::adlb

# Pre-processing --------------------------------------------
data <- adlb |>
  dplyr::filter(
    SAFFL == "Y", # safety population
    PARAMCD %in% c("ALT", "BILI", "CREAT")
    # This step can be used to filter for valid visits. Since the table creation
    # code specifies the visits, we can omit that step here.
  )
Code
tbl <- data |>
  filter(
    AVISIT %in% c("Baseline", "Week 4") # specify visits to display in table
  ) |>
  # apply tbl_baseline_chg function to each level of PARAM in the data
  gtsummary::tbl_strata_nested_stack(
    strata = PARAM,
    ~ .x |>
      crane::tbl_baseline_chg(
        baseline_level = "Baseline",
        by = "TRT01A",
        # this dataset has a treatment level called "Screen Failure".
        # Filtering this out as adsl is used to calculate the denominator.
        denominator = adsl |> filter(TRT01A != "Screen Failure")
      )
  ) |>
  # bold lab test labels
  gtsummary::modify_bold(columns = label, rows = tbl_indent_id1 > 0L) |>
  # update header labels
  gtsummary::modify_header(label = "**Lab  \n\U00A0\U00A0\U00A0\U00A0 Visit**") |>
  gtsummary::modify_spanning_header(gtsummary::all_stat_cols() ~ "**{level}**  \nN = {n}")

tbl

Code
# Extract ARD from previously created gtsummary table (refer to "Build Table")
ard <- gather_ard(tbl)

# Output ARD
ard
$`PARAM="Alanine Aminotransferase (U/L)"`
$`PARAM="Alanine Aminotransferase (U/L)"`$tbl_baseline_chg
# An ARD data frame: 108 × 12
   group1 group1_level variable variable_level context stat_name stat_label   stat fmt_fun warning error  gts_column
   <chr>  <list>       <chr>    <list>         <chr>   <chr>     <chr>      <list> <list>  <list>  <list> <chr>     
 1 TRT01A Placebo      AVAL     Baseline       summary mean      Mean        17.6  <fn>    <NULL>  <NULL> stat_1    
 2 TRT01A Placebo      AVAL     Baseline       summary sd        SD           9.22 <fn>    <NULL>  <NULL> stat_1    
 3 TRT01A Placebo      AVAL     Baseline       summary median    Median      15    <fn>    <NULL>  <NULL> stat_1    
 4 TRT01A Placebo      AVAL     Baseline       summary min       Min          7    <fn>    <NULL>  <NULL> stat_1    
 5 TRT01A Placebo      AVAL     Baseline       summary max       Max         69    <fn>    <NULL>  <NULL> stat_1    
 6 TRT01A Placebo      AVAL     Week 4         summary mean      Mean        18.7  <fn>    <NULL>  <NULL> stat_1    
 7 TRT01A Placebo      AVAL     Week 4         summary sd        SD          12.9  <fn>    <NULL>  <NULL> stat_1    
 8 TRT01A Placebo      AVAL     Week 4         summary median    Median      16    <fn>    <NULL>  <NULL> stat_1    
 9 TRT01A Placebo      AVAL     Week 4         summary min       Min          6    <fn>    <NULL>  <NULL> stat_1    
10 TRT01A Placebo      AVAL     Week 4         summary max       Max        107    <fn>    <NULL>  <NULL> stat_1    
# ℹ 98 more rows


$`PARAM="Bilirubin (umol/L)"`
$`PARAM="Bilirubin (umol/L)"`$tbl_baseline_chg
# An ARD data frame: 108 × 12
   group1 group1_level variable variable_level context stat_name stat_label   stat fmt_fun warning error  gts_column
   <chr>  <list>       <chr>    <list>         <chr>   <chr>     <chr>      <list> <list>  <list>  <list> <chr>     
 1 TRT01A Placebo      AVAL     Baseline       summary mean      Mean         9.70 <fn>    <NULL>  <NULL> stat_1    
 2 TRT01A Placebo      AVAL     Baseline       summary sd        SD           3.96 <fn>    <NULL>  <NULL> stat_1    
 3 TRT01A Placebo      AVAL     Baseline       summary median    Median       8.55 <fn>    <NULL>  <NULL> stat_1    
 4 TRT01A Placebo      AVAL     Baseline       summary min       Min          5.13 <fn>    <NULL>  <NULL> stat_1    
 5 TRT01A Placebo      AVAL     Baseline       summary max       Max         25.6  <fn>    <NULL>  <NULL> stat_1    
 6 TRT01A Placebo      AVAL     Week 4         summary mean      Mean        11.1  <fn>    <NULL>  <NULL> stat_1    
 7 TRT01A Placebo      AVAL     Week 4         summary sd        SD          13.6  <fn>    <NULL>  <NULL> stat_1    
 8 TRT01A Placebo      AVAL     Week 4         summary median    Median       8.55 <fn>    <NULL>  <NULL> stat_1    
 9 TRT01A Placebo      AVAL     Week 4         summary min       Min          5.13 <fn>    <NULL>  <NULL> stat_1    
10 TRT01A Placebo      AVAL     Week 4         summary max       Max        125.   <fn>    <NULL>  <NULL> stat_1    
# ℹ 98 more rows


$`PARAM="Creatinine (umol/L)"`
$`PARAM="Creatinine (umol/L)"`$tbl_baseline_chg
# An ARD data frame: 108 × 12
   group1 group1_level variable variable_level context stat_name stat_label   stat fmt_fun warning error  gts_column
   <chr>  <list>       <chr>    <list>         <chr>   <chr>     <chr>      <list> <list>  <list>  <list> <chr>     
 1 TRT01A Placebo      AVAL     Baseline       summary mean      Mean         97.7 <fn>    <NULL>  <NULL> stat_1    
 2 TRT01A Placebo      AVAL     Baseline       summary sd        SD           17.8 <fn>    <NULL>  <NULL> stat_1    
 3 TRT01A Placebo      AVAL     Baseline       summary median    Median       97.2 <fn>    <NULL>  <NULL> stat_1    
 4 TRT01A Placebo      AVAL     Baseline       summary min       Min          61.9 <fn>    <NULL>  <NULL> stat_1    
 5 TRT01A Placebo      AVAL     Baseline       summary max       Max         159.  <fn>    <NULL>  <NULL> stat_1    
 6 TRT01A Placebo      AVAL     Week 4         summary mean      Mean         98.6 <fn>    <NULL>  <NULL> stat_1    
 7 TRT01A Placebo      AVAL     Week 4         summary sd        SD           18.6 <fn>    <NULL>  <NULL> stat_1    
 8 TRT01A Placebo      AVAL     Week 4         summary median    Median       97.2 <fn>    <NULL>  <NULL> stat_1    
 9 TRT01A Placebo      AVAL     Week 4         summary min       Min          70.7 <fn>    <NULL>  <NULL> stat_1    
10 TRT01A Placebo      AVAL     Week 4         summary max       Max         177.  <fn>    <NULL>  <NULL> stat_1    
# ℹ 98 more rows
Source Code
---
title: Laboratory Test Results and Change from Baseline by Visit
subtitle: Roche LBT01
categories: [table, Roche, parallel-group, change from baseline] 
---

::: panel-tabset
## Table Preview

```{r img, echo=FALSE, fig.align='center', out.width='60%'}
knitr::include_graphics("result.png")
```

## Setup

```{r setup, message=FALSE}
# Load libraries & data -------------------------------------
library(gtsummary)
library(dplyr)
library(crane)

adsl <- pharmaverseadam::adsl
adlb <- pharmaverseadam::adlb

# Pre-processing --------------------------------------------
data <- adlb |>
  dplyr::filter(
    SAFFL == "Y", # safety population
    PARAMCD %in% c("ALT", "BILI", "CREAT")
    # This step can be used to filter for valid visits. Since the table creation
    # code specifies the visits, we can omit that step here.
  )
```

## Build Table

```{r tbl, results='hide'}
tbl <- data |>
  filter(
    AVISIT %in% c("Baseline", "Week 4") # specify visits to display in table
  ) |>
  # apply tbl_baseline_chg function to each level of PARAM in the data
  gtsummary::tbl_strata_nested_stack(
    strata = PARAM,
    ~ .x |>
      crane::tbl_baseline_chg(
        baseline_level = "Baseline",
        by = "TRT01A",
        # this dataset has a treatment level called "Screen Failure".
        # Filtering this out as adsl is used to calculate the denominator.
        denominator = adsl |> filter(TRT01A != "Screen Failure")
      )
  ) |>
  # bold lab test labels
  gtsummary::modify_bold(columns = label, rows = tbl_indent_id1 > 0L) |>
  # update header labels
  gtsummary::modify_header(label = "**Lab  \n\U00A0\U00A0\U00A0\U00A0 Visit**") |>
  gtsummary::modify_spanning_header(gtsummary::all_stat_cols() ~ "**{level}**  \nN = {n}")

tbl
```

```{r eval=FALSE, include=FALSE}
gt::gtsave(as_gt(tbl), filename = "result.png")
```

```{r img, echo=FALSE, fig.align='center', out.width='60%'}
```

## Build ARD

```{r ard, message=FALSE, warning=FALSE, results='hide'}
# Extract ARD from previously created gtsummary table (refer to "Build Table")
ard <- gather_ard(tbl)

# Output ARD
ard
```

```{r, echo=FALSE}
# Print ARD
withr::local_options(width = 9999)
print(ard, columns = "all")
```
:::
 
  • This website as well as code examples are licensed under the Apache License, Version 2.0.
Cookie Preferences