TL Catalog
  1. Tables
  2. Adverse Events
  3. TSFAE17B
  • Introduction

  • Index

  • Tables
    • Adverse Events
      • TSFAE01A
      • TSFAE01B
      • TSFAE02
      • TSFAE02A
      • TSFAE03
      • TSFAE03A
      • TSFAE04
      • TSFAE04A
      • TSFAE05
      • TSFAE05A
      • TSFAE06A
      • TSFAE06B
      • TSFAE07A
      • TSFAE07B
      • TSFAE08
      • TSFAE09
      • TSFAE10
      • TSFAE11
      • TSFAE12
      • TSFAE13
      • TSFAE14
      • TSFAE15
      • TSFAE16
      • TSFAE17A
      • TSFAE17B
      • TSFAE17C
      • TSFAE17D
      • TSFAE19A
      • TSFAE19B
      • TSFAE19C
      • TSFAE19D
      • TSFAE20A
      • TSFAE20B
      • TSFAE20C
      • TSFAE21A
      • TSFAE21B
      • TSFAE21C
      • TSFAE21D
      • TSFAE22A
      • TSFAE22B
      • TSFAE22C
      • TSFAE23A
      • TSFAE23B
      • TSFAE23C
      • TSFAE23D
      • TSFAE24A
      • TSFAE24B
      • TSFAE24C
      • TSFAE24D
      • TSFAE24F
      • TSFDTH01
    • Clinical Laboratory Evaluation
      • TSFLAB01
      • TSFLAB01A
      • TSFLAB02
      • TSFLAB02A
      • TSFLAB02B
      • TSFLAB03
      • TSFLAB03A
      • TSFLAB04A
      • TSFLAB04B
      • TSFLAB05
      • TSFLAB06
      • TSFLAB07
    • Demographic
      • TSIDEM01
      • TSIDEM02
      • TSIMH01
    • Disposition of Subjects
      • TSIDS01
      • TSIDS02
      • TSIDS02A
    • Electrocardiograms
      • TSFECG01
      • TSFECG01A
      • TSFECG02
      • TSFECG03
      • TSFECG04
      • TSFECG05
    • Exposure
      • TSIEX01
      • TSIEX02
      • TSIEX03
      • TSIEX04
      • TSIEX06
      • TSIEX07
      • TSIEX08
      • TSIEX09
      • TSIEX10
      • TSIEX11
    • Pharmacokinetics
      • TPK01A
      • TPK01B
      • TPK02
      • TPK03
    • Prior and Concomitant Therapies
      • TSICM01
      • TSICM02
      • TSICM03
      • TSICM04
      • TSICM05
      • TSICM06
      • TSICM07
      • TSICM08
    • Vital Signs and Physical Findings
      • TSFVIT01
      • TSFVIT01A
      • TSFVIT02
      • TSFVIT03
      • TSFVIT04
      • TSFVIT05
      • TSFVIT06
  • Listings
    • Adverse Events
      • LSFAE01
      • LSFAE02
      • LSFAE03
      • LSFAE04
      • LSFAE05
      • LSFAE06A
      • LSFAE06B
      • LSFDTH01
    • Clinical Laboratory Evaluation
      • LSFLAB01
    • Demographic
      • LSIDEM01
      • LSIDEM02
      • LSIMH01
    • Disposition of Subjects
      • LSIDS01
      • LSIDS02
      • LSIDS03
      • LSIDS04
      • LSIDS05
    • Electrocardiograms
      • LSFECG01
      • LSFECG02
    • Exposure
      • LSIEX01
      • LSIEX02
      • LSIEX03
    • Prior and Concomitant Therapies
      • LSICM01
    • Vital Signs and Physical Findings
      • LSFVIT01
      • LSFVIT02

  • Reproducibility

  • Changelog

On this page

  • Output
  • Edit this page
  • Report an issue
  1. Tables
  2. Adverse Events
  3. TSFAE17B

TSFAE17B

Subjects With Treatment-emergent Adverse Events Leading to Discontinuation of Study Treatment by Organ System, OCMQ (Narrow) / (Broad) and Preferred Term


Output

  • Preview
Code
# Program Name:              tsfae17b.R

# Prep Environment

library(envsetup)
library(tern)
library(dplyr)
library(rtables)
library(junco)

# Define script level parameters:

# - Define output ID and file location

tblid <- "TSFAE17b"
fileid <- tblid
tab_titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map

trtvar <- "TRT01A"
popfl <- "SAFFL"
ocmqclass <- "Narrow"
combined_colspan_trt <- TRUE
risk_diff <- TRUE
rr_method <- "wald"
ctrl_grp <- "Placebo"

if (combined_colspan_trt == TRUE) {
  # Set up levels and label for the required combined columns
  add_combo <- add_combo_facet(
    "Combined",
    label = "Combined",
    levels = c("Xanomeline High Dose", "Xanomeline Low Dose")
  )

  # choose if any facets need to be removed - e.g remove the combined column for placebo
  rm_combo_from_placebo <- cond_rm_facets(
    facets = "Combined",
    ancestor_pos = NA,
    value = " ",
    split = "colspan_trt"
  )

  mysplit <- make_split_fun(post = list(add_combo, rm_combo_from_placebo))
}

# Process Data:

adsl <- pharmaverseadamjnj::adsl %>%
  filter(!!rlang::sym(popfl) == "Y") %>%
  select(STUDYID, USUBJID, all_of(trtvar), all_of(popfl))

adae <- pharmaverseadamjnj::adaeocmq %>%
  filter(TRTEMFL == "Y" & TRDISCFL == "Y" & OCMQCLSS == ocmqclass) %>%
  select(USUBJID, TRTEMFL, OCMQSOC, OCMQNAM, AEDECOD)

adsl$colspan_trt <- factor(
  ifelse(adsl[[trtvar]] == "Placebo", " ", "Active Study Agent"),
  levels = c("Active Study Agent", " ")
)

if (risk_diff == TRUE) {
  adsl$rrisk_header <- "Risk Difference (%) (95% CI)"
  adsl$rrisk_label <- paste(adsl[[trtvar]], paste("vs", ctrl_grp))
}

# join data together
ae <- adae %>% right_join(., adsl, by = c("USUBJID"))

colspan_trt_map <- create_colspan_map(
  adsl,
  non_active_grp = ctrl_grp,
  non_active_grp_span_lbl = " ",
  active_grp_span_lbl = "Active Study Agent",
  colspan_var = "colspan_trt",
  trt_var = trtvar
)

# Define layout and build table:

ref_path <- c("colspan_trt", " ", "TRT01A", "Placebo")
extra_args_rr <- list(
  method = rr_method,
  ref_path = ref_path,
  .stats = c("count_unique_fraction")
)

lyt <- basic_table(
  top_level_section_div = " ",
  show_colcounts = TRUE,
  colcount_format = "N=xx"
) %>%
  split_cols_by(
    "colspan_trt",
    split_fun = trim_levels_to_map(map = colspan_trt_map)
  )

if (combined_colspan_trt == TRUE) {
  lyt <- lyt %>%
    split_cols_by(trtvar, split_fun = mysplit)
} else {
  lyt <- lyt %>%
    split_cols_by(trtvar)
}

if (risk_diff == TRUE) {
  lyt <- lyt %>%
    split_cols_by("rrisk_header", nested = FALSE) %>%
    split_cols_by(
      trtvar,
      labels_var = "rrisk_label",
      split_fun = remove_split_levels("Placebo")
    )
}

lyt <- lyt %>%
  split_rows_by(
    "OCMQSOC",
    split_label = "Organ System~[super a]",
    split_fun = trim_levels_in_group("OCMQNAM"),
    label_pos = "topleft",
    section_div = c(" "),
    nested = FALSE
  ) %>%
  summarize_row_groups(
    "OCMQSOC",
    cfun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  split_rows_by(
    "OCMQNAM",
    split_label = paste0("OCMQ (", ocmqclass, ")"),
    split_fun = trim_levels_in_group("AEDECOD"),
    label_pos = "topleft",
    nested = TRUE
  ) %>%
  summarize_row_groups(
    "OCMQNAM",
    cfun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  analyze(
    "AEDECOD",
    afun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  append_topleft("    Preferred Term, n (%)")

result <- build_table(lyt, ae, alt_counts_df = adsl)

## Remove the N=xx column headers for the risk difference columns
result <- remove_col_count(result)

# If there is no data display "No data to display" text
if (nrow(adae) == 0) {
  result <- safe_prune_table(result)
}

# Post-Processing step to sort by descending count on chosen active treatment columns.

if (nrow(adae) != 0) {
  result <- sort_at_path(
    result,
    c("root", "OCMQSOC"),
    scorefun = jj_complex_scorefun()
  )
  result <- sort_at_path(
    result,
    c("root", "OCMQSOC", "*", "OCMQNAM"),
    scorefun = jj_complex_scorefun()
  )
  result <- sort_at_path(
    result,
    c("root", "OCMQSOC", "*", "OCMQNAM", "*", "AEDECOD"),
    scorefun = jj_complex_scorefun()
  )
}

# Add titles and footnotes:

result <- set_titles(result, tab_titles)

# Convert to tbl file and output table

tt_to_tlgrtf(string_map = string_map, tt = result, file = fileid, orientation = "landscape")

TSFAE17b: Subjects With Treatment-emergent Adverse Events Leading to Discontinuation of Study Treatment by System Organ Class, FDA Medical Query (Narrow) and Preferred Term; Safety Analysis Set (Study jjcs - core)

Organ Systema

Active Study Agent

Risk Difference (%) (95% CI)

OCMQ (Narrow)

Xanomeline High Dose

Xanomeline Low Dose

Combined

Placebo

Xanomeline High Dose vs Placebo

Xanomeline Low Dose vs Placebo

Preferred Term, n (%)

N=53

N=73

N=126

N=59

Skin and subcutaneous tissue
 disorders

9 (17.0%)

6 (8.2%)

15 (11.9%)

4 (6.8%)

10.2 (-1.8, 22.2)

1.4 (-7.6, 10.4)

Pruritus

5 (9.4%)

5 (6.8%)

10 (7.9%)

1 (1.7%)

7.7 (-0.8, 16.3)

5.2 (-1.5, 11.8)

APPLICATION SITE PRURITUS

2 (3.8%)

4 (5.5%)

6 (4.8%)

0

3.8 (-1.4, 8.9)

5.5 (0.3, 10.7)

PRURITUS

2 (3.8%)

1 (1.4%)

3 (2.4%)

0

3.8 (-1.4, 8.9)

1.4 (-1.3, 4.0)

RASH PRURITIC

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

EYE PRURITUS

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Rash

3 (5.7%)

1 (1.4%)

4 (3.2%)

1 (1.7%)

4.0 (-3.1, 11.0)

-0.3 (-4.6, 3.9)

RASH

2 (3.8%)

0

2 (1.6%)

1 (1.7%)

2.1 (-4.0, 8.2)

-1.7 (-5.0, 1.6)

BLISTER

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

RASH PRURITIC

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Erythema

2 (3.8%)

1 (1.4%)

3 (2.4%)

2 (3.4%)

0.4 (-6.5, 7.3)

-2.0 (-7.4, 3.3)

ERYTHEMA

2 (3.8%)

0

2 (1.6%)

1 (1.7%)

2.1 (-4.0, 8.2)

-1.7 (-5.0, 1.6)

APPLICATION SITE
 ERYTHEMA

0

1 (1.4%)

1 (0.8%)

1 (1.7%)

-1.7 (-5.0, 1.6)

-0.3 (-4.6, 3.9)

General disorders and
 administration site conditions

4 (7.5%)

4 (5.5%)

8 (6.3%)

3 (5.1%)

2.5 (-6.6, 11.5)

0.4 (-7.3, 8.1)

Dizziness

1 (1.9%)

3 (4.1%)

4 (3.2%)

0

1.9 (-1.8, 5.5)

4.1 (-0.4, 8.7)

DIZZINESS

1 (1.9%)

3 (4.1%)

4 (3.2%)

0

1.9 (-1.8, 5.5)

4.1 (-0.4, 8.7)

Fatigue

2 (3.8%)

1 (1.4%)

3 (2.4%)

0

3.8 (-1.4, 8.9)

1.4 (-1.3, 4.0)

ASTHENIA

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

FATIGUE

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

LISTLESS

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Local Administration Reaction

1 (1.9%)

0

1 (0.8%)

1 (1.7%)

0.2 (-4.7, 5.1)

-1.7 (-5.0, 1.6)

APPLICATION SITE
 DERMATITIS

1 (1.9%)

0

1 (0.8%)

1 (1.7%)

0.2 (-4.7, 5.1)

-1.7 (-5.0, 1.6)

APPLICATION SITE REACTION

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Decreased Appetite

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

DECREASED APPETITE

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Peripheral Edema

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

OEDEMA PERIPHERAL

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Nervous system disorders

4 (7.5%)

1 (1.4%)

5 (4.0%)

1 (1.7%)

5.9 (-2.0, 13.7)

-0.3 (-4.6, 3.9)

Headache

2 (3.8%)

0

2 (1.6%)

0

3.8 (-1.4, 8.9)

0.0 (0.0, 0.0)

HEADACHE

2 (3.8%)

0

2 (1.6%)

0

3.8 (-1.4, 8.9)

0.0 (0.0, 0.0)

Syncope

1 (1.9%)

1 (1.4%)

2 (1.6%)

0

1.9 (-1.8, 5.5)

1.4 (-1.3, 4.0)

SYNCOPE

1 (1.9%)

1 (1.4%)

2 (1.6%)

0

1.9 (-1.8, 5.5)

1.4 (-1.3, 4.0)

Confusional State

1 (1.9%)

0

1 (0.8%)

1 (1.7%)

0.2 (-4.7, 5.1)

-1.7 (-5.0, 1.6)

DELIRIUM

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

DISORIENTATION

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Infections and infestations

2 (3.8%)

1 (1.4%)

3 (2.4%)

4 (6.8%)

-3.0 (-11.2, 5.2)

-5.4 (-12.4, 1.5)

Nasopharyngitis

2 (3.8%)

1 (1.4%)

3 (2.4%)

3 (5.1%)

-1.3 (-8.9, 6.3)

-3.7 (-9.9, 2.5)

NASOPHARYNGITIS

1 (1.9%)

1 (1.4%)

2 (1.6%)

1 (1.7%)

0.2 (-4.7, 5.1)

-0.3 (-4.6, 3.9)

UPPER RESPIRATORY TRACT
 INFECTION

1 (1.9%)

0

1 (0.8%)

2 (3.4%)

-1.5 (-7.4, 4.4)

-3.4 (-8.0, 1.2)

Bacterial Infection

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

URINARY TRACT INFECTION

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Vascular disorders

2 (3.8%)

1 (1.4%)

3 (2.4%)

0

3.8 (-1.4, 8.9)

1.4 (-1.3, 4.0)

Hemorrhage

1 (1.9%)

1 (1.4%)

2 (1.6%)

0

1.9 (-1.8, 5.5)

1.4 (-1.3, 4.0)

CONTUSION

1 (1.9%)

1 (1.4%)

2 (1.6%)

0

1.9 (-1.8, 5.5)

1.4 (-1.3, 4.0)

Thrombosis

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

MYOCARDIAL INFARCTION

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Thrombosis Arterial

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

MYOCARDIAL INFARCTION

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Cardiac disorders

1 (1.9%)

1 (1.4%)

2 (1.6%)

0

1.9 (-1.8, 5.5)

1.4 (-1.3, 4.0)

Acute Coronary Syndrome

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

MYOCARDIAL INFARCTION

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Myocardial Infarction

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

MYOCARDIAL INFARCTION

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Myocardial Ischemia

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

MYOCARDIAL INFARCTION

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Palpitations

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

PALPITATIONS

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Gastrointestinal disorders

0

2 (2.7%)

2 (1.6%)

1 (1.7%)

-1.7 (-5.0, 1.6)

1.0 (-3.9, 6.0)

Diarrhea

0

2 (2.7%)

2 (1.6%)

1 (1.7%)

-1.7 (-5.0, 1.6)

1.0 (-3.9, 6.0)

DIARRHOEA

0

2 (2.7%)

2 (1.6%)

1 (1.7%)

-1.7 (-5.0, 1.6)

1.0 (-3.9, 6.0)

Vomiting

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

VOMITING

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Respiratory, thoracic and
 mediastinal disorders

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Dyspnea

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

DYSPNOEA

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Immune system disorders

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Hypersensitivity

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

DRUG ERUPTION

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Renal and urinary disorders

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Renal & Urinary Tract
 Infection

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

URINARY TRACT INFECTION

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Key: FMQ=FDA Medical Query

a Each FMQ is aligned to a single system organ class based on clinical judgment, as defined by FDA. However, some FMQs may contain preferred terms from more than one system organ class. Preferred terms that are not included in any FMQ are not summarized.

Note: Adverse events are coded using MedDRA version 26.0.

Download RTF file

TSFAE17A
TSFAE17C
Source Code
---
title: TSFAE17B
subtitle: Subjects With Treatment-emergent Adverse Events Leading to Discontinuation of Study Treatment by Organ System, OCMQ (Narrow) / (Broad) and Preferred Term
---

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

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

```{r setup, echo = FALSE, warning = FALSE, message = FALSE}
options(docx.add_datetime = FALSE, tidytlg.add_datetime = FALSE)
envsetup_config_name <- "default"

# Path to the combined config file
envsetup_file_path <- file.path("../..", "envsetup.yml")

Sys.setenv(ENVSETUP_ENVIRON = '')
library(envsetup)
loaded_config <- config::get(config = envsetup_config_name, file = envsetup_file_path)
envsetup::rprofile(loaded_config)


dpscomp <- compound
dpspdr <- paste(protocol,dbrelease,rpteff,sep="__")

aptcomp <- compound
aptpdr <- paste(protocol,dbrelease,rpteff,sep="__")

###### Study specific updates (formerly in envre)

dpscomp <- "standards"
dpspdr <- "jjcs__NULL__jjcs - core"

apt <- FALSE
library(junco)
default_str_map <- rbind(default_str_map, c("&ctcae", "5.0"))

```

## Output

:::: panel-tabset
## {{< fa regular file-lines sm fw >}} Preview

```{r variant1, results='hide', warning = FALSE, message = FALSE}

# Program Name:              tsfae17b.R

# Prep Environment

library(envsetup)
library(tern)
library(dplyr)
library(rtables)
library(junco)

# Define script level parameters:

# - Define output ID and file location

tblid <- "TSFAE17b"
fileid <- tblid
tab_titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map

trtvar <- "TRT01A"
popfl <- "SAFFL"
ocmqclass <- "Narrow"
combined_colspan_trt <- TRUE
risk_diff <- TRUE
rr_method <- "wald"
ctrl_grp <- "Placebo"

if (combined_colspan_trt == TRUE) {
  # Set up levels and label for the required combined columns
  add_combo <- add_combo_facet(
    "Combined",
    label = "Combined",
    levels = c("Xanomeline High Dose", "Xanomeline Low Dose")
  )

  # choose if any facets need to be removed - e.g remove the combined column for placebo
  rm_combo_from_placebo <- cond_rm_facets(
    facets = "Combined",
    ancestor_pos = NA,
    value = " ",
    split = "colspan_trt"
  )

  mysplit <- make_split_fun(post = list(add_combo, rm_combo_from_placebo))
}

# Process Data:

adsl <- pharmaverseadamjnj::adsl %>%
  filter(!!rlang::sym(popfl) == "Y") %>%
  select(STUDYID, USUBJID, all_of(trtvar), all_of(popfl))

adae <- pharmaverseadamjnj::adaeocmq %>%
  filter(TRTEMFL == "Y" & TRDISCFL == "Y" & OCMQCLSS == ocmqclass) %>%
  select(USUBJID, TRTEMFL, OCMQSOC, OCMQNAM, AEDECOD)

adsl$colspan_trt <- factor(
  ifelse(adsl[[trtvar]] == "Placebo", " ", "Active Study Agent"),
  levels = c("Active Study Agent", " ")
)

if (risk_diff == TRUE) {
  adsl$rrisk_header <- "Risk Difference (%) (95% CI)"
  adsl$rrisk_label <- paste(adsl[[trtvar]], paste("vs", ctrl_grp))
}

# join data together
ae <- adae %>% right_join(., adsl, by = c("USUBJID"))

colspan_trt_map <- create_colspan_map(
  adsl,
  non_active_grp = ctrl_grp,
  non_active_grp_span_lbl = " ",
  active_grp_span_lbl = "Active Study Agent",
  colspan_var = "colspan_trt",
  trt_var = trtvar
)

# Define layout and build table:

ref_path <- c("colspan_trt", " ", "TRT01A", "Placebo")
extra_args_rr <- list(
  method = rr_method,
  ref_path = ref_path,
  .stats = c("count_unique_fraction")
)

lyt <- basic_table(
  top_level_section_div = " ",
  show_colcounts = TRUE,
  colcount_format = "N=xx"
) %>%
  split_cols_by(
    "colspan_trt",
    split_fun = trim_levels_to_map(map = colspan_trt_map)
  )

if (combined_colspan_trt == TRUE) {
  lyt <- lyt %>%
    split_cols_by(trtvar, split_fun = mysplit)
} else {
  lyt <- lyt %>%
    split_cols_by(trtvar)
}

if (risk_diff == TRUE) {
  lyt <- lyt %>%
    split_cols_by("rrisk_header", nested = FALSE) %>%
    split_cols_by(
      trtvar,
      labels_var = "rrisk_label",
      split_fun = remove_split_levels("Placebo")
    )
}

lyt <- lyt %>%
  split_rows_by(
    "OCMQSOC",
    split_label = "Organ System~[super a]",
    split_fun = trim_levels_in_group("OCMQNAM"),
    label_pos = "topleft",
    section_div = c(" "),
    nested = FALSE
  ) %>%
  summarize_row_groups(
    "OCMQSOC",
    cfun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  split_rows_by(
    "OCMQNAM",
    split_label = paste0("OCMQ (", ocmqclass, ")"),
    split_fun = trim_levels_in_group("AEDECOD"),
    label_pos = "topleft",
    nested = TRUE
  ) %>%
  summarize_row_groups(
    "OCMQNAM",
    cfun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  analyze(
    "AEDECOD",
    afun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  append_topleft("    Preferred Term, n (%)")

result <- build_table(lyt, ae, alt_counts_df = adsl)

## Remove the N=xx column headers for the risk difference columns
result <- remove_col_count(result)

# If there is no data display "No data to display" text
if (nrow(adae) == 0) {
  result <- safe_prune_table(result)
}

# Post-Processing step to sort by descending count on chosen active treatment columns.

if (nrow(adae) != 0) {
  result <- sort_at_path(
    result,
    c("root", "OCMQSOC"),
    scorefun = jj_complex_scorefun()
  )
  result <- sort_at_path(
    result,
    c("root", "OCMQSOC", "*", "OCMQNAM"),
    scorefun = jj_complex_scorefun()
  )
  result <- sort_at_path(
    result,
    c("root", "OCMQSOC", "*", "OCMQNAM", "*", "AEDECOD"),
    scorefun = jj_complex_scorefun()
  )
}

# Add titles and footnotes:

result <- set_titles(result, tab_titles)

# Convert to tbl file and output table

tt_to_tlgrtf(string_map = string_map, tt = result, file = fileid, orientation = "landscape")
```
```{r result1, echo=FALSE, message=FALSE, warning=FALSE, test = list(result_v1 = "result")}
tt_to_flextable_j(result, tblid, string_map = string_map) 
```

[Download RTF file](`r paste0(tolower(tblid), '.rtf')`)
::::

Made with ❤️ by the J&J Team

  • Edit this page
  • Report an issue
Cookie Preferences