abnormal_by_worst_grade {tern} | R Documentation |
Patient counts with the most extreme post-baseline toxicity grade per direction of abnormality
Description
Primary analysis variable .var
indicates the toxicity grade (factor
), and additional
analysis variables are id
(character
or factor
), param
(factor
) and grade_dir
(factor
).
The pre-processing steps are crucial when using this function.
For a certain direction (e.g. high or low) this function counts
patients in the denominator as number of patients with at least one valid measurement during treatment,
and patients in the numerator as follows:
-
1
to4
: Numerator is number of patients with worst grades 1-4 respectively; -
Any
: Numerator is number of patients with at least one abnormality, which means grade is different from 0.
Pre-processing is crucial when using this function and can be done automatically using the
h_adlb_abnormal_by_worst_grade()
helper function. See the description of this function for details on the
necessary pre-processing steps.
Usage
count_abnormal_by_worst_grade(
lyt,
var,
variables = list(id = "USUBJID", param = "PARAM", grade_dir = "GRADE_DIR"),
na_str = default_na_str(),
nested = TRUE,
...,
.stats = NULL,
.formats = NULL,
.labels = NULL,
.indent_mods = NULL
)
s_count_abnormal_by_worst_grade(
df,
.var = "GRADE_ANL",
.spl_context,
variables = list(id = "USUBJID", param = "PARAM", grade_dir = "GRADE_DIR")
)
a_count_abnormal_by_worst_grade(
df,
.var = "GRADE_ANL",
.spl_context,
variables = list(id = "USUBJID", param = "PARAM", grade_dir = "GRADE_DIR")
)
Arguments
lyt |
( |
variables |
(named |
na_str |
( |
nested |
( |
... |
additional arguments for the lower level functions. |
.stats |
( |
.formats |
(named |
.labels |
(named |
.indent_mods |
(named |
df |
( |
.var , var |
( |
.spl_context |
( |
Value
-
count_abnormal_by_worst_grade()
returns a layout object suitable for passing to further layouting functions, or tortables::build_table()
. Adding this function to anrtable
layout will add formatted rows containing the statistics froms_count_abnormal_by_worst_grade()
to the table layout.
-
s_count_abnormal_by_worst_grade()
returns the single statisticcount_fraction
with grades 1 to 4 and "Any" results.
-
a_count_abnormal_by_worst_grade()
returns the corresponding list with formattedrtables::CellValue()
.
Functions
-
count_abnormal_by_worst_grade()
: Layout-creating function which can take statistics function arguments and additional format arguments. This function is a wrapper forrtables::analyze()
. -
s_count_abnormal_by_worst_grade()
: Statistics function which counts patients by worst grade. -
a_count_abnormal_by_worst_grade()
: Formatted analysis function which is used asafun
incount_abnormal_by_worst_grade()
.
See Also
h_adlb_abnormal_by_worst_grade()
which pre-processes ADLB data frames to be used in
count_abnormal_by_worst_grade()
.
Examples
library(dplyr)
library(forcats)
adlb <- tern_ex_adlb
# Data is modified in order to have some parameters with grades only in one direction
# and simulate the real data.
adlb$ATOXGR[adlb$PARAMCD == "ALT" & adlb$ATOXGR %in% c("1", "2", "3", "4")] <- "-1"
adlb$ANRIND[adlb$PARAMCD == "ALT" & adlb$ANRIND == "HIGH"] <- "LOW"
adlb$WGRHIFL[adlb$PARAMCD == "ALT"] <- ""
adlb$ATOXGR[adlb$PARAMCD == "IGA" & adlb$ATOXGR %in% c("-1", "-2", "-3", "-4")] <- "1"
adlb$ANRIND[adlb$PARAMCD == "IGA" & adlb$ANRIND == "LOW"] <- "HIGH"
adlb$WGRLOFL[adlb$PARAMCD == "IGA"] <- ""
# Pre-processing
adlb_f <- adlb %>% h_adlb_abnormal_by_worst_grade()
# Map excludes records without abnormal grade since they should not be displayed
# in the table.
map <- unique(adlb_f[adlb_f$GRADE_DIR != "ZERO", c("PARAM", "GRADE_DIR", "GRADE_ANL")]) %>%
lapply(as.character) %>%
as.data.frame() %>%
arrange(PARAM, desc(GRADE_DIR), GRADE_ANL)
basic_table() %>%
split_cols_by("ARMCD") %>%
split_rows_by("PARAM") %>%
split_rows_by("GRADE_DIR", split_fun = trim_levels_to_map(map)) %>%
count_abnormal_by_worst_grade(
var = "GRADE_ANL",
variables = list(id = "USUBJID", param = "PARAM", grade_dir = "GRADE_DIR")
) %>%
build_table(df = adlb_f)