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 <- random.cdisc.data::cadsl
adlb <- random.cdisc.data::cadlb

# Pre-processing --------------------------------------------
data <- adlb |>
  dplyr::filter(
    SAFFL == "Y", # safety population
    AVISITN >= 0 # only keep valid visits
  ) |>
  # retain the "WEEK *" portion of the visit
  dplyr::mutate(
    AVISIT = if_else(
      stringr::str_detect(AVISIT, "WEEK"),
      stringr::str_extract(AVISIT, "WEEK \\d+"),
      AVISIT
    ) |> trimws()
  )
Code
tbl <- data |>
  filter(
    AVISIT %in% c("BASELINE", "WEEK 5") # 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",
        denominator = adsl
      )
  ) |>
  # 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 Measurement"`
$`PARAM="Alanine Aminotransferase Measurement"`$tbl_baseline_chg
{cards} data frame: 109 x 12
   group1 group1_level variable variable_level context stat_name stat_label   stat fmt_fun warning error gts_column
1  TRT01A    A: Drug X     AVAL       BASELINE summary      mean       Mean 17.738    <fn>                   stat_1
2  TRT01A    A: Drug X     AVAL       BASELINE summary        sd         SD  9.926    <fn>                   stat_1
3  TRT01A    A: Drug X     AVAL       BASELINE summary    median     Median 17.464    <fn>                   stat_1
4  TRT01A    A: Drug X     AVAL       BASELINE summary       min        Min  0.002    <fn>                   stat_1
5  TRT01A    A: Drug X     AVAL       BASELINE summary       max        Max 44.064    <fn>                   stat_1
6  TRT01A    A: Drug X     AVAL         WEEK 5 summary      mean       Mean 19.215    <fn>                   stat_1
7  TRT01A    A: Drug X     AVAL         WEEK 5 summary        sd         SD  9.471    <fn>                   stat_1
8  TRT01A    A: Drug X     AVAL         WEEK 5 summary    median     Median 19.796    <fn>                   stat_1
9  TRT01A    A: Drug X     AVAL         WEEK 5 summary       min        Min  0.007    <fn>                   stat_1
10 TRT01A    A: Drug X     AVAL         WEEK 5 summary       max        Max 43.424    <fn>                   stat_1
ℹ 99 more rows
ℹ Use `print(n = ...)` to see more rows


$`PARAM="C-Reactive Protein Measurement"`
$`PARAM="C-Reactive Protein Measurement"`$tbl_baseline_chg
{cards} data frame: 109 x 12
   group1 group1_level variable variable_level context stat_name stat_label   stat fmt_fun warning error gts_column
1  TRT01A    A: Drug X     AVAL       BASELINE summary      mean       Mean  9.056    <fn>                   stat_1
2  TRT01A    A: Drug X     AVAL       BASELINE summary        sd         SD   0.93    <fn>                   stat_1
3  TRT01A    A: Drug X     AVAL       BASELINE summary    median     Median  9.075    <fn>                   stat_1
4  TRT01A    A: Drug X     AVAL       BASELINE summary       min        Min  6.215    <fn>                   stat_1
5  TRT01A    A: Drug X     AVAL       BASELINE summary       max        Max 11.871    <fn>                   stat_1
6  TRT01A    A: Drug X     AVAL         WEEK 5 summary      mean       Mean  9.041    <fn>                   stat_1
7  TRT01A    A: Drug X     AVAL         WEEK 5 summary        sd         SD   1.04    <fn>                   stat_1
8  TRT01A    A: Drug X     AVAL         WEEK 5 summary    median     Median  8.976    <fn>                   stat_1
9  TRT01A    A: Drug X     AVAL         WEEK 5 summary       min        Min  6.922    <fn>                   stat_1
10 TRT01A    A: Drug X     AVAL         WEEK 5 summary       max        Max 12.119    <fn>                   stat_1
ℹ 99 more rows
ℹ Use `print(n = ...)` to see more rows


$`PARAM="Immunoglobulin A Measurement"`
$`PARAM="Immunoglobulin A Measurement"`$tbl_baseline_chg
{cards} data frame: 109 x 12
   group1 group1_level variable variable_level context stat_name stat_label  stat fmt_fun warning error gts_column
1  TRT01A    A: Drug X     AVAL       BASELINE summary      mean       Mean 2.888    <fn>                   stat_1
2  TRT01A    A: Drug X     AVAL       BASELINE summary        sd         SD 0.084    <fn>                   stat_1
3  TRT01A    A: Drug X     AVAL       BASELINE summary    median     Median 2.888    <fn>                   stat_1
4  TRT01A    A: Drug X     AVAL       BASELINE summary       min        Min 2.704    <fn>                   stat_1
5  TRT01A    A: Drug X     AVAL       BASELINE summary       max        Max 3.122    <fn>                   stat_1
6  TRT01A    A: Drug X     AVAL         WEEK 5 summary      mean       Mean 2.907    <fn>                   stat_1
7  TRT01A    A: Drug X     AVAL         WEEK 5 summary        sd         SD  0.09    <fn>                   stat_1
8  TRT01A    A: Drug X     AVAL         WEEK 5 summary    median     Median 2.913    <fn>                   stat_1
9  TRT01A    A: Drug X     AVAL         WEEK 5 summary       min        Min 2.595    <fn>                   stat_1
10 TRT01A    A: Drug X     AVAL         WEEK 5 summary       max        Max 3.085    <fn>                   stat_1
ℹ 99 more rows
ℹ Use `print(n = ...)` to see 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 <- random.cdisc.data::cadsl
adlb <- random.cdisc.data::cadlb

# Pre-processing --------------------------------------------
data <- adlb |>
  dplyr::filter(
    SAFFL == "Y", # safety population
    AVISITN >= 0 # only keep valid visits
  ) |>
  # retain the "WEEK *" portion of the visit
  dplyr::mutate(
    AVISIT = if_else(
      stringr::str_detect(AVISIT, "WEEK"),
      stringr::str_extract(AVISIT, "WEEK \\d+"),
      AVISIT
    ) |> trimws()
  )
```

## Build Table

```{r tbl, results='hide'}
tbl <- data |>
  filter(
    AVISIT %in% c("BASELINE", "WEEK 5") # 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",
        denominator = adsl
      )
  ) |>
  # 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