Create a gtsummary table with Kaplan-Meier estimated survival estimates and specified times.
tbl_survfit_times(
data,
times,
y = "survival::Surv(time = AVAL, event = 1 - CNSR, type = 'right', origin = 0)",
by = NULL,
label = "Time {time}",
statistic = c("{n.risk}", "{estimate}", "({conf.low}, {conf.high})"),
estimate_fun = label_roche_number(digits = 1, scale = 100),
method.args = list(conf.int = 0.95)
)
# S3 method for class 'tbl_survfit_times'
add_difference_row(
x,
reference,
statistic = c("{estimate}", "({conf.low}, {conf.high})", "{p.value}"),
conf.level = 0.95,
pvalue_fun = label_roche_pvalue(),
estimate_fun = label_roche_number(digits = 2, scale = 100),
...
)
# S3 method for class 'tbl_survfit_times'
add_overall(
x,
last = FALSE,
col_label = "All Participants \nN = {style_roche_number(N)}",
...
)(data.frame)
A data frame
(numeric)
a vector of times for which to return survival probabilities.
(string or expression)
A string or expression with the survival outcome, e.g. survival::Surv(time, status).
The default value is
survival::Surv(time = AVAL, event = 1 - CNSR, type = "right", origin = 0).
(tidy-select)
A single column from data. Summary statistics will be stratified by this variable.
Default is NULL, which returns results for the unstratified model.
(string)
Label to appear in the header row. Default is "Time {time}", where
the glue syntax injects the time estimate into the label.
(character)
Character vector of the statistics to report.
May use any of the following statistics:
c(n.risk, estimate, std.error, conf.low, conf.high),
Default is c("{n.risk}", "{estimate}", "({conf.low}, {conf.high})")
Statistics available to include when using add_difference_row() are:
"estimate", "std.error", "statistic", "conf.low", "conf.high", "p.value".
(function)
Function used to style/round the c(estimate, conf.low, conf.high) statistics.
(named list)
Named list of arguments that will be passed to survival::survfit().
Note that this list may contain non-standard evaluation components, and
must be handled similarly to tidyselect inputs by using
rlang's embrace operator {{ . }} or !!enquo() when programming with this
function.
(tbl_survfit_times)
A stratified 'tbl_survfit_times' object
(string)
Value of the tbl_survfit_times(by) variable value that is the reference for
each of the difference calculations. For factors, use the character
level. The reference column will appear as the leftmost column in the table.
(numeric)
a scalar in the interval (0, 1) indicating the confidence level. Default is 0.95
(function)
Function to round and format the p.value statistic. Default is label_roche_pvalue().
The function must have a numeric vector input, and return a string that is the
rounded/formatted p-value (e.g. pvalue_fun = label_style_pvalue(digits = 3)).
These dots are for future extensions and must be empty.
(scalar logical)
Logical indicator to display overall column last in table.
Default is FALSE, which will display overall column first.
(string)
String indicating the column label. Default is "**Overall** \nN = {style_number(N)}"
a gtsummary table
When the statistic argument is modified, the statistic labels will likely
also need to be updated. To change the label, call the modify_table_body()
function to directly update the underlying x$table_body data frame.
add_difference_row(tbl_survfit_times): Adds survival differences between groups as additional rows to tables created by tbl_survfit_times().
Difference statistics are calculated using cardx::ard_survival_survfit_diff()
for all tbl_survfit_times(times) variable values, using survfit formula:
survival::survfit(y ~ by, data = data)where y, by and data are the inputs of the same names to the tbl_survfit_times() object x.
Pairwise differences are calculated relative to the specified by variable's specified reference level.
# Example 1 ----------------------------------
tbl_survfit_times(
data = cards::ADTTE,
by = "TRTA",
times = c(30, 60),
label = "Day {time}"
) |>
add_overall()
All Participants
N = 254
Placebo
(N = 86)
Xanomeline High Dose
(N = 84)
Xanomeline Low Dose
(N = 84)
# Example 2 - Survival Differences -----------
tbl_survfit_times(
data = cards::ADTTE,
by = "TRTA",
times = c(30, 60),
label = "Day {time}"
) |>
add_difference_row(reference = "Placebo")
Placebo
(N = 86)1
Xanomeline High Dose
(N = 84)1
Xanomeline Low Dose
(N = 84)1
1 n (%)