TL Catalog
  1. Tables
  2. Adverse Events
  3. TSFAE14
  • 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. TSFAE14

TSFAE14

Subjects With Treatment-emergent Serious Adverse Events by Organ System and OCMQ (Narrow)


Output

  • Preview
Code
# Program Name:              tsfae14.R

# Prep Environment

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

# Define script level parameters:

# - Define output ID and file location

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

trtvar <- "TRT01A"
popfl <- "SAFFL"
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" & AESER == "Y" & OCMQCLSS == "Narrow") %>%
  select(USUBJID, TRTEMFL, OCMQSOC, OCMQNAM)

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)
  ) %>%
  analyze(
    "OCMQNAM",
    afun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  append_topleft("  OCMQ (Narrow), 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()
  )
}

# 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")

TSFAE14: Subjects With Treatment-emergent Serious Adverse Events by System Organ Class and FDA Medical Query (Narrow); Safety Analysis Set (Study jjcs - core)

Active Study Agent

Risk Difference (%) (95% CI)

Organ Systema

Xanomeline High Dose

Xanomeline Low Dose

Combined

Placebo

Xanomeline High Dose vs Placebo

Xanomeline Low Dose vs Placebo

OCMQ (Narrow), n (%)

N=53

N=73

N=126

N=59

Skin and subcutaneous tissue
 disorders

34 (64.2%)

28 (38.4%)

62 (49.2%)

11 (18.6%)

45.5 (29.2, 61.8)

19.7 (4.8, 34.7)

Pruritus

24 (45.3%)

21 (28.8%)

45 (35.7%)

6 (10.2%)

35.1 (19.7, 50.6)

18.6 (5.7, 31.5)

Erythema

16 (30.2%)

14 (19.2%)

30 (23.8%)

5 (8.5%)

21.7 (7.5, 36.0)

10.7 (-0.8, 22.2)

Rash

10 (18.9%)

8 (11.0%)

18 (14.3%)

4 (6.8%)

12.1 (-0.2, 24.4)

4.2 (-5.4, 13.8)

Urticaria

1 (1.9%)

1 (1.4%)

2 (1.6%)

0

1.9 (-1.8, 5.5)

1.4 (-1.3, 4.0)

General disorders and
 administration site conditions

12 (22.6%)

16 (21.9%)

28 (22.2%)

7 (11.9%)

10.8 (-3.2, 24.7)

10.1 (-2.5, 22.6)

Local Administration Reaction

5 (9.4%)

5 (6.8%)

10 (7.9%)

4 (6.8%)

2.7 (-7.5, 12.8)

0.1 (-8.6, 8.7)

Dizziness

4 (7.5%)

4 (5.5%)

8 (6.3%)

0

7.5 (0.4, 14.7)

5.5 (0.3, 10.7)

Fatigue

4 (7.5%)

3 (4.1%)

7 (5.6%)

1 (1.7%)

5.9 (-2.0, 13.7)

2.4 (-3.2, 8.0)

Fall

1 (1.9%)

2 (2.7%)

3 (2.4%)

0

1.9 (-1.8, 5.5)

2.7 (-1.0, 6.5)

Peripheral Edema

1 (1.9%)

1 (1.4%)

2 (1.6%)

2 (3.4%)

-1.5 (-7.4, 4.4)

-2.0 (-7.4, 3.3)

Pyrexia

0

2 (2.7%)

2 (1.6%)

0

0.0 (0.0, 0.0)

2.7 (-1.0, 6.5)

Nervous system disorders

6 (11.3%)

8 (11.0%)

14 (11.1%)

2 (3.4%)

7.9 (-1.8, 17.6)

7.6 (-1.0, 16.1)

Headache

2 (3.8%)

3 (4.1%)

5 (4.0%)

1 (1.7%)

2.1 (-4.0, 8.2)

2.4 (-3.2, 8.0)

Somnolence

0

4 (5.5%)

4 (3.2%)

1 (1.7%)

-1.7 (-5.0, 1.6)

3.8 (-2.4, 10.0)

Confusional State

1 (1.9%)

1 (1.4%)

2 (1.6%)

1 (1.7%)

0.2 (-4.7, 5.1)

-0.3 (-4.6, 3.9)

Stroke and TIA

0

2 (2.7%)

2 (1.6%)

0

0.0 (0.0, 0.0)

2.7 (-1.0, 6.5)

Paresthesia

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Seizure

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Syncope

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Cardiac disorders

6 (11.3%)

7 (9.6%)

13 (10.3%)

5 (8.5%)

2.8 (-8.3, 13.9)

1.1 (-8.7, 10.9)

Arrhythmia

4 (7.5%)

5 (6.8%)

9 (7.1%)

3 (5.1%)

2.5 (-6.6, 11.5)

1.8 (-6.3, 9.8)

Acute Coronary Syndrome

2 (3.8%)

1 (1.4%)

3 (2.4%)

2 (3.4%)

0.4 (-6.5, 7.3)

-2.0 (-7.4, 3.3)

Myocardial Infarction

2 (3.8%)

1 (1.4%)

3 (2.4%)

2 (3.4%)

0.4 (-6.5, 7.3)

-2.0 (-7.4, 3.3)

Myocardial Ischemia

2 (3.8%)

1 (1.4%)

3 (2.4%)

2 (3.4%)

0.4 (-6.5, 7.3)

-2.0 (-7.4, 3.3)

Cardiac Conduction
 Disturbance

0

2 (2.7%)

2 (1.6%)

2 (3.4%)

-3.4 (-8.0, 1.2)

-0.7 (-6.6, 5.3)

Tachycardia

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Gastrointestinal disorders

8 (15.1%)

4 (5.5%)

12 (9.5%)

3 (5.1%)

10.0 (-1.1, 21.2)

0.4 (-7.3, 8.1)

Diarrhea

2 (3.8%)

2 (2.7%)

4 (3.2%)

1 (1.7%)

2.1 (-4.0, 8.2)

1.0 (-3.9, 6.0)

Abdominal Pain

2 (3.8%)

1 (1.4%)

3 (2.4%)

1 (1.7%)

2.1 (-4.0, 8.2)

-0.3 (-4.6, 3.9)

Vomiting

3 (5.7%)

0

3 (2.4%)

0

5.7 (-0.6, 11.9)

0.0 (0.0, 0.0)

Nausea

2 (3.8%)

0

2 (1.6%)

0

3.8 (-1.4, 8.9)

0.0 (0.0, 0.0)

Dyspepsia

0

1 (1.4%)

1 (0.8%)

1 (1.7%)

-1.7 (-5.0, 1.6)

-0.3 (-4.6, 3.9)

Constipation

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Infections and infestations

5 (9.4%)

5 (6.8%)

10 (7.9%)

7 (11.9%)

-2.4 (-13.8, 9.0)

-5.0 (-15.1, 5.1)

Nasopharyngitis

4 (7.5%)

3 (4.1%)

7 (5.6%)

5 (8.5%)

-0.9 (-11.0, 9.1)

-4.4 (-12.8, 4.1)

Bacterial Infection

1 (1.9%)

1 (1.4%)

2 (1.6%)

1 (1.7%)

0.2 (-4.7, 5.1)

-0.3 (-4.6, 3.9)

Pneumonia

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Viral Infection

1 (1.9%)

0

1 (0.8%)

1 (1.7%)

0.2 (-4.7, 5.1)

-1.7 (-5.0, 1.6)

Vascular disorders

3 (5.7%)

6 (8.2%)

9 (7.1%)

3 (5.1%)

0.6 (-7.8, 8.9)

3.1 (-5.3, 11.6)

Thrombosis

2 (3.8%)

3 (4.1%)

5 (4.0%)

2 (3.4%)

0.4 (-6.5, 7.3)

0.7 (-5.8, 7.2)

Thrombosis Arterial

2 (3.8%)

3 (4.1%)

5 (4.0%)

2 (3.4%)

0.4 (-6.5, 7.3)

0.7 (-5.8, 7.2)

Hemorrhage

1 (1.9%)

3 (4.1%)

4 (3.2%)

1 (1.7%)

0.2 (-4.7, 5.1)

2.4 (-3.2, 8.0)

Hypotension

0

0

0

2 (3.4%)

-3.4 (-8.0, 1.2)

-3.4 (-8.0, 1.2)

Psychiatric disorders

1 (1.9%)

4 (5.5%)

5 (4.0%)

4 (6.8%)

-4.9 (-12.3, 2.5)

-1.3 (-9.6, 7.0)

Study Agent Abuse Potential

0

3 (4.1%)

3 (2.4%)

1 (1.7%)

-1.7 (-5.0, 1.6)

2.4 (-3.2, 8.0)

Anxiety

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Insomnia

1 (1.9%)

0

1 (0.8%)

1 (1.7%)

0.2 (-4.7, 5.1)

-1.7 (-5.0, 1.6)

Irritability

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Psychosis

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Musculoskeletal and connective
 tissue disorders

4 (7.5%)

0

4 (3.2%)

1 (1.7%)

5.9 (-2.0, 13.7)

-1.7 (-5.0, 1.6)

Back Pain

3 (5.7%)

0

3 (2.4%)

0

5.7 (-0.6, 11.9)

0.0 (0.0, 0.0)

Arthralgia

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Fracture

1 (1.9%)

0

1 (0.8%)

1 (1.7%)

0.2 (-4.7, 5.1)

-1.7 (-5.0, 1.6)

Osteoporosis

0

0

0

1 (1.7%)

-1.7 (-5.0, 1.6)

-1.7 (-5.0, 1.6)

Respiratory, thoracic and
 mediastinal disorders

3 (5.7%)

1 (1.4%)

4 (3.2%)

0

5.7 (-0.6, 11.9)

1.4 (-1.3, 4.0)

Cough

3 (5.7%)

1 (1.4%)

4 (3.2%)

0

5.7 (-0.6, 11.9)

1.4 (-1.3, 4.0)

Reproductive system and
 breast disorders

3 (5.7%)

0

3 (2.4%)

1 (1.7%)

4.0 (-3.1, 11.0)

-1.7 (-5.0, 1.6)

Sexual Dysfunction

2 (3.8%)

0

2 (1.6%)

1 (1.7%)

2.1 (-4.0, 8.2)

-1.7 (-5.0, 1.6)

Abnormal Uterine Bleeding

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Erectile Dysfunction

1 (1.9%)

0

1 (0.8%)

1 (1.7%)

0.2 (-4.7, 5.1)

-1.7 (-5.0, 1.6)

Excessive Menstrual Bleeding

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Ear and labyrinth disorders

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Vertigo

0

1 (1.4%)

1 (0.8%)

0

0.0 (0.0, 0.0)

1.4 (-1.3, 4.0)

Endocrine disorders

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Hyperglycemia

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Metabolism and nutrition
 disorders

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.0)

Lipid Disorder

1 (1.9%)

0

1 (0.8%)

0

1.9 (-1.8, 5.5)

0.0 (0.0, 0.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)

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)

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.

Download RTF file

TSFAE13
TSFAE15
Source Code
---
title: TSFAE14
subtitle: Subjects With Treatment-emergent Serious Adverse Events by Organ System and OCMQ (Narrow)
---

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

{{< 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:              tsfae14.R

# Prep Environment

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

# Define script level parameters:

# - Define output ID and file location

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

trtvar <- "TRT01A"
popfl <- "SAFFL"
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" & AESER == "Y" & OCMQCLSS == "Narrow") %>%
  select(USUBJID, TRTEMFL, OCMQSOC, OCMQNAM)

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)
  ) %>%
  analyze(
    "OCMQNAM",
    afun = a_freq_j,
    extra_args = append(extra_args_rr, NULL)
  ) %>%
  append_topleft("  OCMQ (Narrow), 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()
  )
}

# 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