Typical use is tabulating post-baseline measurement stratified by the baseline measurement.
tbl_shift(
data,
variable,
strata = NULL,
by = NULL,
data_header = NULL,
strata_location = c("new_column", "header"),
strata_label = "{strata}",
header = "{level} \nN = {n}",
label = NULL,
nonmissing = "always",
nonmissing_text = "Total",
...
)
# S3 method for class 'tbl_shift'
add_overall(
x,
col_label = "All Participants \n(N = {style_roche_number(n)})",
last = FALSE,
...
)(data.frame)
A data frame.
(tidy-select)
Variable to tabulate. Typically the post-baseline grade.
(tidy-select)
Stratifying variable. Typically the baseline grade.
(tidy-select)
Variable to report results by. Typical value is the treatment arm.
(data.frame)
Data frame used to calculate the Ns in the table header.
Only include the columns needed to merge with data: these are typically
the 'USUBJID' and the treatment arm only, e.g ADSL[c("USUBJID", "ARM")].
(string)
Specifies the location where the individual stratum levels will be printed.
Must be one of c("new_column", "header").
"new_column": stratum labels are placed in a new column to the left of the tabulated results.
"header": stratum labels are placed in a header row above the tabulations.
(string)
A glue-string that inserts stratum level. Default is '{strata}', and
{n} is also available to insert.
(string)
String that is passed to gtsummary::modify_header(all_stat_cols() ~ header).
(formula-list-selector)
Used to specify the labels for the strata and variable columns.
Default is to use the column label attribute.
Argument passed to tbl_roche_summary().
See details below for call details to tbl_roche_summary().
(tbl_shift)
Object of class 'tbl_shift'.
(string)
String indicating the column label. Default is "All Participants \nN = {style_roche_number(n)}"
(scalar logical)
Logical indicator to display overall column last in table.
Default is FALSE, which will display overall column first.
a 'gtsummary' table
Broadly, this function is a wrapper for chunk below with some additional
calls to gtsummary::modify_*() function to update the table's
headers, indentation, column alignment, etc.
gtsummary::tbl_strata2(
data = data,
strata = strata,
~ tbl_roche_summary(.x, include = variable, by = by)
)library(dplyr, warn.conflicts = FALSE)
# subsetting ADLB on one PARAM, and the highest grade
adlb <- pharmaverseadam::adlb |>
select("USUBJID", "TRT01A", "PARAM", "PARAMCD", "ATOXGRH", "BTOXGRH", "VISITNUM") |>
mutate(TRT01A = factor(TRT01A)) |>
filter(PARAMCD %in% c("CHOLES", "GLUC")) |>
slice_max(by = c(USUBJID, PARAMCD), order_by = ATOXGRH, n = 1L, with_ties = FALSE) |>
labelled::set_variable_labels(
BTOXGRH = "Baseline \nNCI-CTCAE Grade",
ATOXGRH = "Post-baseline \nNCI-CTCAE Grade"
)
adsl <- pharmaverseadam::adsl[c("USUBJID", "TRT01A")] |>
filter(TRT01A != "Screen Failure")
# Example 1 ----------------------------------
# tabulate baseline grade by worst grade
tbl_shift(
data = filter(adlb, PARAMCD %in% "CHOLES"),
strata = BTOXGRH,
variable = ATOXGRH,
by = TRT01A,
data_header = adsl
)
Baseline
NCI-CTCAE Grade
Post-baseline
NCI-CTCAE Grade
Placebo
N = 86
Xanomeline High Dose
N = 72
Xanomeline Low Dose
N = 96
# Example 2 ----------------------------------
# same as Ex1, but with the stratifying variable levels in header rows
adlb |>
filter(PARAMCD %in% "CHOLES") |>
labelled::set_variable_labels(
BTOXGRH = "Baseline NCI-CTCAE Grade",
ATOXGRH = "Post-baseline NCI-CTCAE Grade"
) |>
tbl_shift(
data = ,
strata = BTOXGRH,
variable = ATOXGRH,
strata_location = "header",
by = TRT01A,
data_header = adsl
)
# Example 3 ----------------------------------
# same as Ex2, but with two labs
adlb |>
labelled::set_variable_labels(
BTOXGRH = "Baseline NCI-CTCAE Grade",
ATOXGRH = "Post-baseline NCI-CTCAE Grade"
) |>
tbl_strata_nested_stack(
strata = PARAM,
~ .x |>
tbl_shift(
strata = BTOXGRH,
variable = ATOXGRH,
strata_location = "header",
by = TRT01A,
data_header = adsl
)
) |>
# Update header with Lab header and indentation (the '\U00A0' character adds whitespace)
modify_header(
label = "Lab \n\U00A0\U00A0\U00A0\U00A0
Baseline NCI-CTCAE Grade \n\U00A0\U00A0\U00A0\U00A0\U00A0\U00A0\U00A0\U00A0
Post-baseline NCI-CTCAE Grade"
)
Lab
Baseline NCI-CTCAE Grade
Post-baseline NCI-CTCAE Grade
Placebo
N = 86
Xanomeline High Dose
N = 72
Xanomeline Low Dose
N = 96
# Example 4 ----------------------------------
# Include the treatment variable in a new column
filter(adlb, PARAMCD %in% "CHOLES") |>
right_join(
pharmaverseadam::adsl[c("USUBJID", "TRT01A")] |>
filter(TRT01A != "Screen Failure"),
by = c("USUBJID", "TRT01A")
) |>
tbl_shift(
strata = TRT01A,
variable = BTOXGRH,
by = ATOXGRH,
header = "{level}",
strata_label = "{strata}, N={n}",
label = list(TRT01A = "Actual Treatment"),
percent = "cell",
nonmissing = "no"
) |>
modify_spanning_header(all_stat_cols() ~ "Worst Post-baseline NCI-CTCAE Grade")
#> ℹ Converting column "ATOXGRH" to a factor.
0
1
2