---
title: TSFECG02
subtitle: Categorized Corrected QT Interval Values Over Time
---
------------------------------------------------------------------------
{{< 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: tsfecg02
# Prep Environment
library(envsetup)
library(tern)
library(dplyr)
library(rtables)
library(junco)
# Define script level parameters:
tblid <- "TSFECG02"
fileid <- tblid
titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map
popfl <- "SAFFL"
trtvar <- "TRT01A"
ctrl_grp <- "Placebo"
selparamcd <- c("QTC", "QTCBAG", "QTCFAG")
selvisit <- c(
"Baseline",
"Month 1",
"Month 3",
"Month 6",
"Month 9",
"Month 12"
)
# Process Data:
adsl <- pharmaverseadamjnj::adsl %>%
filter(.data[[popfl]] == "Y") %>%
select(
USUBJID,
all_of(c(popfl, trtvar)),
SEX_DECODE,
AGEGR1,
RACE_DECODE,
ETHNIC_DECODE
)
adsl$colspan_trt <- factor(
ifelse(adsl[[trtvar]] == ctrl_grp, " ", "Active Study Agent"),
levels = c("Active Study Agent", " ")
)
filtered_adeg <- pharmaverseadamjnj::adeg %>%
filter(PARAMCD %in% selparamcd) %>%
filter(AVISIT %in% selvisit) %>%
filter(ANL02FL == "Y") %>%
filter(!is.na(AVALCAT1)) %>%
select(
STUDYID,
USUBJID,
PARAMCD,
PARAM,
AVALCAT1,
AVALCA1N,
AVISIT,
ANL02FL,
APOBLFL,
ABLFL,
ONTRTFL
) %>%
inner_join(adsl)
## main analysis variable is AVALCAT1 : these have the same levels for all selected parameters
## no need to create an map dataframe for usage in layout
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
)
ref_path <- c("colspan_trt", " ", trtvar, ctrl_grp)
# Define layout and build table:
extra_args_rr <- list(
method = "wald",
denom = "n_df",
.stats = c("denom", "count_unique_fraction")
)
# extra_args_rr2 <- list(method = "wald", denom = "n_df", .stats = c("denom", "count_unique_denom_fraction")) # version with explicit denominator (usefull for testing purpose)
lyt <- basic_table(
show_colcounts = TRUE,
colcount_format = "N=xx"
) %>%
split_cols_by(
"colspan_trt",
split_fun = trim_levels_to_map(map = colspan_trt_map)
) %>%
split_cols_by(trtvar) %>%
split_rows_by(
"PARAM",
label_pos = "topleft",
child_labels = "default",
split_label = "QTc Interval",
section_div = " ",
## ensure only selected params are included
split_fun = drop_split_levels
) %>%
split_rows_by(
"AVISIT",
label_pos = "topleft",
child_labels = "default",
split_label = "Study Visit",
section_div = " ",
## ensure only the selected visits are included
split_fun = drop_split_levels
) %>%
analyze(
"AVALCAT1",
a_freq_j,
extra_args = extra_args_rr,
show_labels = "hidden",
indent_mod = 0L
) %>%
append_topleft(c(" Criteria, n (%)"))
result <- build_table(lyt, filtered_adeg, alt_counts_df = adsl)
# Post-Processing:
result <- remove_col_count(result)
# Add titles and footnotes:
result <- set_titles(result, titles)
# Convert to tbl file and output table
tt_to_tlgrtf(string_map = string_map, tt = result, file = fileid)
```
```{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')`)
::::