Calculate and add a p-value to stratified tbl_survfit()
tables.
Usage
# S3 method for class 'tbl_survfit'
add_p(
x,
test = "logrank",
test.args = NULL,
pvalue_fun = label_style_pvalue(digits = 1),
include = everything(),
quiet,
...
)
Arguments
- x
(
tbl_survfit
)
Object of class"tbl_survfit"
- test
(
string
)
string indicating test to use. Must be one of"logrank"
,"tarone"
,"survdiff"
,"petopeto_gehanwilcoxon"
,"coxph_lrt"
,"coxph_wald"
,"coxph_score"
. See details below- test.args
(named
list
)
named list of arguments that will be passed to the method specified in thetest
argument. Default isNULL
.- pvalue_fun
(
function
)
Function to round and format p-values. Default islabel_style_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 = 2)
).- include
(
tidy-select
)
Variables to include in output. Default iseverything()
.- quiet
- ...
These dots are for future extensions and must be empty.
test argument
The most common way to specify test=
is by using a single string indicating
the test name. However, if you need to specify different tests within the same
table, the input in flexible using the list notation common throughout the
gtsummary package. For example, the following code would call the log-rank test,
and a second test of the G-rho family.
Note
To calculate the p-values, the formula is re-constructed from the the call in the
original survfit()
object.
When the survfit()
object is created a for loop, lapply()
, purrr::map()
setting the call may not reflect the true formula which may result in an
error or an incorrect calculation.
To ensure correct results, the call formula in survfit()
must represent the
formula that will be used in survival::survdiff()
.
If you utilize the tbl_survfit.data.frame()
S3 method, this is handled for you.
See also
Other tbl_survfit tools:
add_nevent.tbl_survfit()
Examples
library(survival)
gts_survfit <-
list(
survfit(Surv(ttdeath, death) ~ grade, trial),
survfit(Surv(ttdeath, death) ~ trt, trial)
) |>
tbl_survfit(times = c(12, 24))
# Example 1 ----------------------------------
gts_survfit |>
add_p()
Characteristic
Time 12
Time 24
p-value1
1 Log-rank test
# Example 2 ----------------------------------
# Pass `rho=` argument to `survdiff()`
gts_survfit |>
add_p(test = "survdiff", test.args = list(rho = 0.5))
Characteristic
Time 12
Time 24
p-value1
1 G-rho test (ρ = 0.5)