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

FDA Table 07

Deaths, Safety Population, Pooled Analyses

table
FDA
safety
deaths
  • Table Preview
  • Setup
  • Build Table
  • Build ARD

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

adsl <- random.cdisc.data::cadsl
adae <- random.cdisc.data::cadae

set.seed(1)
adae$TRTEMFL <- ifelse(adae$USUBJID %in% sample(adsl$USUBJID, size = as.integer(nrow(adsl) / 3)), "N", "Y")

# Pre-processing --------------------------------------------
adsl <- adsl |>
  filter(SAFFL == "Y") # safety population

data <- adae |>
  filter(
    # safety population
    SAFFL == "Y",
    # deaths
    DTHFL == "Y"
  ) |>
  mutate(
    # treatment-emergent deaths categories
    TRTEMFL = ifelse(TRTEMFL == "Y", "Treatment-emergent deaths", "Nontreatment-emergent deaths")
  )

data <- data |>
  bind_rows(
    # duplicate all data to create "Total deaths" section
    data |> mutate(TRTEMFL = "Total deaths")
  )
Code
tbl <- data |>
  tbl_hierarchical(
    variables = c(TRTEMFL, DTHCAUS),
    id = USUBJID,
    denominator = adsl,
    by = TRT01A
  ) |>
  sort_hierarchical() |>
  modify_header(label = "**Deaths**")

tbl

Code
ard <- gather_ard(tbl)[[1]]

ard
{cards} data frame: 207 x 15
   group1 group1_level  group2 group2_level variable variable_level   context stat_name stat_label  stat stat_fmt fmt_fun warning error gts_column
1    <NA>                 <NA>                TRT01A      A: Drug X categori…         n          n   134      134       0                   stat_1
2    <NA>                 <NA>                TRT01A      A: Drug X categori…         N          N   400      400       0                   stat_1
3    <NA>                 <NA>                TRT01A      A: Drug X categori…         p          % 0.335     33.5    <fn>                   stat_1
4    <NA>                 <NA>                TRT01A      B: Place… categori…         n          n   134      134       0                   stat_2
5    <NA>                 <NA>                TRT01A      B: Place… categori…         N          N   400      400       0                   stat_2
6    <NA>                 <NA>                TRT01A      B: Place… categori…         p          % 0.335     33.5    <fn>                   stat_2
7    <NA>                 <NA>                TRT01A      C: Combi… categori…         n          n   132      132       0                   stat_3
8    <NA>                 <NA>                TRT01A      C: Combi… categori…         N          N   400      400       0                   stat_3
9    <NA>                 <NA>                TRT01A      C: Combi… categori…         p          %  0.33     33.0    <fn>                   stat_3
10 TRT01A    A: Drug X    <NA>               TRTEMFL      Total de… hierarch…         n          n    24       24    <fn>                   stat_1
11 TRT01A    A: Drug X    <NA>               TRTEMFL      Total de… hierarch…         N          N   134      134    <fn>                   stat_1
12 TRT01A    A: Drug X    <NA>               TRTEMFL      Total de… hierarch…         p          % 0.179       18    <fn>                   stat_1
13 TRT01A    B: Place…    <NA>               TRTEMFL      Total de… hierarch…         n          n    19       19    <fn>                   stat_2
14 TRT01A    B: Place…    <NA>               TRTEMFL      Total de… hierarch…         N          N   134      134    <fn>                   stat_2
15 TRT01A    B: Place…    <NA>               TRTEMFL      Total de… hierarch…         p          % 0.142       14    <fn>                   stat_2
16 TRT01A    C: Combi…    <NA>               TRTEMFL      Total de… hierarch…         n          n    20       20    <fn>                   stat_3
17 TRT01A    C: Combi…    <NA>               TRTEMFL      Total de… hierarch…         N          N   132      132    <fn>                   stat_3
18 TRT01A    C: Combi…    <NA>               TRTEMFL      Total de… hierarch…         p          % 0.152       15    <fn>                   stat_3
19 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         n          n     8        8    <fn>                   stat_1
20 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         N          N     9        9    <fn>                   stat_1
21 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         p          % 0.889       89    <fn>                   stat_1
22 TRT01A    B: Place… TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         n          n     6        6    <fn>                   stat_2
23 TRT01A    B: Place… TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         N          N     7        7    <fn>                   stat_2
24 TRT01A    B: Place… TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         p          % 0.857       86    <fn>                   stat_2
25 TRT01A    C: Combi… TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         n          n    10       10    <fn>                   stat_3
26 TRT01A    C: Combi… TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         N          N    10       10    <fn>                   stat_3
27 TRT01A    C: Combi… TRTEMFL    Total de…  DTHCAUS      ADVERSE … hierarch…         p          %     1      100    <fn>                   stat_3
28 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         n          n     8        8    <fn>                   stat_1
29 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         N          N     8        8    <fn>                   stat_1
30 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         p          %     1      100    <fn>                   stat_1
31 TRT01A    B: Place… TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         n          n     5        5    <fn>                   stat_2
32 TRT01A    B: Place… TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         N          N     6        6    <fn>                   stat_2
33 TRT01A    B: Place… TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         p          % 0.833       83    <fn>                   stat_2
34 TRT01A    C: Combi… TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         n          n     6        6    <fn>                   stat_3
35 TRT01A    C: Combi… TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         N          N     6        6    <fn>                   stat_3
36 TRT01A    C: Combi… TRTEMFL    Total de…  DTHCAUS      DISEASE … hierarch…         p          %     1      100    <fn>                   stat_3
37 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS        MISSING hierarch…         n          n     2        2    <fn>                   stat_1
38 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS        MISSING hierarch…         N          N     2        2    <fn>                   stat_1
39 TRT01A    A: Drug X TRTEMFL    Total de…  DTHCAUS        MISSING hierarch…         p          %     1      100    <fn>                   stat_1
40 TRT01A    B: Place… TRTEMFL    Total de…  DTHCAUS        MISSING hierarch…         n          n     3        3    <fn>                   stat_2
ℹ 167 more rows
ℹ Use `print(n = ...)` to see more rows
Source Code
---
title: FDA Table 07
subtitle: Deaths, Safety Population, Pooled Analyses
categories: [table, FDA, safety, deaths]
---

::: panel-tabset
## Table Preview

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

## Setup

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

adsl <- random.cdisc.data::cadsl
adae <- random.cdisc.data::cadae

set.seed(1)
adae$TRTEMFL <- ifelse(adae$USUBJID %in% sample(adsl$USUBJID, size = as.integer(nrow(adsl) / 3)), "N", "Y")

# Pre-processing --------------------------------------------
adsl <- adsl |>
  filter(SAFFL == "Y") # safety population

data <- adae |>
  filter(
    # safety population
    SAFFL == "Y",
    # deaths
    DTHFL == "Y"
  ) |>
  mutate(
    # treatment-emergent deaths categories
    TRTEMFL = ifelse(TRTEMFL == "Y", "Treatment-emergent deaths", "Nontreatment-emergent deaths")
  )

data <- data |>
  bind_rows(
    # duplicate all data to create "Total deaths" section
    data |> mutate(TRTEMFL = "Total deaths")
  )
```

## Build Table

```{r tbl, results = 'hide'}
tbl <- data |>
  tbl_hierarchical(
    variables = c(TRTEMFL, DTHCAUS),
    id = USUBJID,
    denominator = adsl,
    by = TRT01A
  ) |>
  sort_hierarchical() |>
  modify_header(label = "**Deaths**")

tbl
```

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

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

## Build ARD

```{r ard, message=FALSE, warning=FALSE, results='hide'}
ard <- gather_ard(tbl)[[1]]

ard
```

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