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 = {gtsummary::style_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 = {gtsummary::style_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