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

LSFDTH01

Listing of Deaths


Output

  • Preview
Code
# Program Name:              lsfdth01.R

# Prep environment

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

# Define script level parameters

tblid <- "LSFDTH01"
fileid <- tblid
popfl <- "SAFFL"
trtvar <- "TRT01A"
key_cols <- c("COL0", "COL1")
disp_cols <- paste0("COL", 0:8)
concat_sep <- " / "
tab_titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map

# Process data

adsl <- pharmaverseadamjnj::adsl %>%
  filter(!!rlang::sym(popfl) == "Y" & DTHFL == "Y")

adexsum <- pharmaverseadamjnj::adexsum %>%
  filter(PARAMCD == "TRTDURM") %>%
  select(STUDYID, USUBJID, AVAL)

adexsum_dig <- tidytlg:::make_precision_data(
  df = adexsum,
  decimal = 4,
  precisionby = "STUDYID",
  precisionon = "AVAL"
) %>%
  rename(c(VALDIGMAX = "decimal"))

adsl_adexsum <- adsl %>%
  inner_join(adexsum, by = c("STUDYID", "USUBJID")) %>%
  left_join(adexsum_dig, by = c("STUDYID" = "STUDYID"))

lsting <- adsl_adexsum %>%
  mutate(
    AGE = explicit_na(as.character(AGE), ""),
    SEX = explicit_na(SEX, ""),
    RACE_DECODE = explicit_na(RACE_DECODE, ""),
    LDOSE = explicit_na(as.character(LDOSE), ""),
    LDOSU = explicit_na(LDOSU, ""),
    DTHCAUS = explicit_na(stringr::str_to_sentence(DTHCAUS), ""),
    DTHTERM = explicit_na(stringr::str_to_sentence(DTHTERM), ""),
    COL0 = explicit_na(.data[[trtvar]], ""),
    COL1 = explicit_na(USUBJID, ""),
    COL2 = paste(AGE, SEX, RACE_DECODE, sep = concat_sep),
    COL3 = paste(LDOSE, LDOSU),
    COL4 = case_when(
      is.na(AVAL) ~ "",
      VALDIGMAX == 0 & !is.na(AVAL) ~
        tidytlg::roundSAS(AVAL, digits = 0, as_char = TRUE, na_char = NULL),
      VALDIGMAX >= 1 & !is.na(AVAL) ~
        tidytlg::roundSAS(AVAL, digits = 1, as_char = TRUE, na_char = NULL)
    ),
    # Optional Column: COL5/TRTEDT/TRTEDY
    COL5 = ifelse(
      is.na(TRTEDT),
      "",
      paste0(
        toupper(format(TRTEDT, "%d%b%Y")),
        " (",
        TRTEDY,
        ")"
      )
    ),
    # Optional Column: COL6/LDSTODTH
    COL6 = explicit_na(as.character(LDSTODTH), ""),
    COL7 = ifelse(
      is.na(DTHDT),
      "",
      paste0(
        toupper(format(DTHDT, "%d%b%Y")),
        " (",
        DTHDY,
        ")"
      )
    ),
    COL8 = paste(DTHCAUS, DTHTERM, sep = concat_sep)
  ) %>%
  arrange(COL0, COL1)

lsting <- var_relabel(
  lsting,
  COL0 = "Treatment Group",
  COL1 = "Subject ID",
  COL2 = paste("Age (years)", "Sex", "Race", sep = concat_sep),
  COL3 = "Last Dose of Study Treatment",
  COL4 = "Duration of Treatment Months~[super a]",
  # Optional Column: COL5/TRTEDT/TRTEDY
  COL5 = "Date of Last Dose of Study Treatment (Study Day~[super b])",
  # Optional Column: COL6/LDSTODTH
  COL6 = "Days From Last Study Treatment Administration to Death~[super c]",
  COL7 = "Date of Death (Study Day~[super d])",
  COL8 = paste(
    "Primary Cause of Death (Preferred Term",
    "Verbatim",
    sep = concat_sep
  )
)

# Build listing

result <- rlistings::as_listing(
  df = lsting,
  key_cols = key_cols,
  disp_cols = disp_cols
)

# Add titles and footnotes

result <- set_titles(result, tab_titles)

# Output listing

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

LSFDTH01: Listing of Deaths; Safety Analysis Set (Study jjcs - core)

Treatment Group

Subject ID

Age (years) / Sex / Race

Last Dose of Study Treatment

Duration of Treatment Monthsa

Date of Last Dose of Study Treatment (Study Dayb)

Days From Last Study Treatment Administration to Deathc

Date of Death (Study Dayd)

Primary Cause of Death (Preferred Term / Verbatim

Xanomeline Low Dose

01-701-1211

76 / F / Other

20 mg

12.5

12JAN2013 (50)

3

14JAN2013 (61)

Sudden death / Sudden death

Placebo

01-710-1083

89 / F / White

20 mg

11.6

01AUG2013 (50)

2

02AUG2013 (12)

Myocardial infarction / Myocardial infarction

a Duration of treatment is defined as [(date of last dose of [study treatment]– date of first dose of [study treatment]) +1].

b Study day of last dose is defined as date of last dose–[the start of [study treatment]]+1.

c Days from last [study treatment] administration to death=date of death–date of last dose of [study treatment].

d Study day of death is defined as: date of death–[the start of [study treatment]+1.

Note: Cause of death is coded using MedDRA version 26.0.

[lsfdth01.docx][/usr/lib/rstudio-server/bin/quarto/share/rmd/rmd.R] 12JAN2026, 16:09

Download RTF file

LSFAE06B
LSFLAB01
Source Code
---
title: LSFDTH01
subtitle: Listing of Deaths
---

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

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

# Prep environment

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

# Define script level parameters

tblid <- "LSFDTH01"
fileid <- tblid
popfl <- "SAFFL"
trtvar <- "TRT01A"
key_cols <- c("COL0", "COL1")
disp_cols <- paste0("COL", 0:8)
concat_sep <- " / "
tab_titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map

# Process data

adsl <- pharmaverseadamjnj::adsl %>%
  filter(!!rlang::sym(popfl) == "Y" & DTHFL == "Y")

adexsum <- pharmaverseadamjnj::adexsum %>%
  filter(PARAMCD == "TRTDURM") %>%
  select(STUDYID, USUBJID, AVAL)

adexsum_dig <- tidytlg:::make_precision_data(
  df = adexsum,
  decimal = 4,
  precisionby = "STUDYID",
  precisionon = "AVAL"
) %>%
  rename(c(VALDIGMAX = "decimal"))

adsl_adexsum <- adsl %>%
  inner_join(adexsum, by = c("STUDYID", "USUBJID")) %>%
  left_join(adexsum_dig, by = c("STUDYID" = "STUDYID"))

lsting <- adsl_adexsum %>%
  mutate(
    AGE = explicit_na(as.character(AGE), ""),
    SEX = explicit_na(SEX, ""),
    RACE_DECODE = explicit_na(RACE_DECODE, ""),
    LDOSE = explicit_na(as.character(LDOSE), ""),
    LDOSU = explicit_na(LDOSU, ""),
    DTHCAUS = explicit_na(stringr::str_to_sentence(DTHCAUS), ""),
    DTHTERM = explicit_na(stringr::str_to_sentence(DTHTERM), ""),
    COL0 = explicit_na(.data[[trtvar]], ""),
    COL1 = explicit_na(USUBJID, ""),
    COL2 = paste(AGE, SEX, RACE_DECODE, sep = concat_sep),
    COL3 = paste(LDOSE, LDOSU),
    COL4 = case_when(
      is.na(AVAL) ~ "",
      VALDIGMAX == 0 & !is.na(AVAL) ~
        tidytlg::roundSAS(AVAL, digits = 0, as_char = TRUE, na_char = NULL),
      VALDIGMAX >= 1 & !is.na(AVAL) ~
        tidytlg::roundSAS(AVAL, digits = 1, as_char = TRUE, na_char = NULL)
    ),
    # Optional Column: COL5/TRTEDT/TRTEDY
    COL5 = ifelse(
      is.na(TRTEDT),
      "",
      paste0(
        toupper(format(TRTEDT, "%d%b%Y")),
        " (",
        TRTEDY,
        ")"
      )
    ),
    # Optional Column: COL6/LDSTODTH
    COL6 = explicit_na(as.character(LDSTODTH), ""),
    COL7 = ifelse(
      is.na(DTHDT),
      "",
      paste0(
        toupper(format(DTHDT, "%d%b%Y")),
        " (",
        DTHDY,
        ")"
      )
    ),
    COL8 = paste(DTHCAUS, DTHTERM, sep = concat_sep)
  ) %>%
  arrange(COL0, COL1)

lsting <- var_relabel(
  lsting,
  COL0 = "Treatment Group",
  COL1 = "Subject ID",
  COL2 = paste("Age (years)", "Sex", "Race", sep = concat_sep),
  COL3 = "Last Dose of Study Treatment",
  COL4 = "Duration of Treatment Months~[super a]",
  # Optional Column: COL5/TRTEDT/TRTEDY
  COL5 = "Date of Last Dose of Study Treatment (Study Day~[super b])",
  # Optional Column: COL6/LDSTODTH
  COL6 = "Days From Last Study Treatment Administration to Death~[super c]",
  COL7 = "Date of Death (Study Day~[super d])",
  COL8 = paste(
    "Primary Cause of Death (Preferred Term",
    "Verbatim",
    sep = concat_sep
  )
)

# Build listing

result <- rlistings::as_listing(
  df = lsting,
  key_cols = key_cols,
  disp_cols = disp_cols
)

# Add titles and footnotes

result <- set_titles(result, tab_titles)

# Output listing

tt_to_tlgrtf(string_map = string_map, tt = head(result, 100), file = fileid, orientation = "landscape")
```
```{r result1, echo=FALSE, message=FALSE, warning=FALSE, test = list(result_v1 = "result")}
tt_to_flextable_j(head(result,100), 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