[Maturing] Function takes a survfit object as an argument, and provides a formatted summary table of the results

tbl_survfit(x, ...)

# S3 method for list
tbl_survfit(
  x,
  times = NULL,
  probs = NULL,
  statistic = NULL,
  label = NULL,
  label_header = NULL,
  estimate_fun = NULL,
  missing = NULL,
  conf.level = 0.95,
  reverse = FALSE,
  quiet = NULL,
  ...
)

# S3 method for survfit
tbl_survfit(x, ...)

# S3 method for data.frame
tbl_survfit(x, y, include = everything(), ...)

Arguments

x

a survfit object, list of survfit objects, or a data frame. If a data frame is passed, a list of survfit objects is constructed using each variable as a stratifying variable.

...

For tbl_survfit.data.frame() and tbl_survfit.survfit() the arguments are passed to tbl_survfit.list(). They are not used when tbl_survfit.list() is called directly.

times

numeric vector of times for which to return survival probabilities.

probs

numeric vector of probabilities with values in (0,1) specifying the survival quantiles to return

statistic

string defining the statistics to present in the table. Default is "{estimate} ({conf.low}, {conf.high})"

label

List of formulas specifying variables labels, e.g. list(age ~ "Age, yrs", stage ~ "Path T Stage"), or a string for a single variable table.

label_header

string specifying column labels above statistics. Default is "{prob} Percentile" for survival percentiles, and "Time {time}" for n-year survival estimates

estimate_fun

function to format the Kaplan-Meier estimates. Default is style_percent() for survival probabilities and style_sigfig for survival times

missing

text to fill when estimate is not estimable. Default is "--"

conf.level

Confidence level for confidence intervals. Default is 0.95

reverse

Flip the probability reported, i.e. 1 - estimate. Default is FALSE. Does not apply to survival quantile requests

quiet

Logical indicating whether to print messages in console. Default is FALSE

y

outcome call, e.g. y = Surv(ttdeath, death)

include

Variable to include as stratifying variables.

Example Output

Example 1

image of rendered example table

Example 2

image of rendered example table

Example 3

image of rendered example table

Example 4

image of rendered example table

See also

Author

Daniel D. Sjoberg

Examples

library(survival)

# Example 1 ----------------------------------
# Pass single survfit() object
tbl_survfit_ex1 <- tbl_survfit(
  survfit(Surv(ttdeath, death) ~ trt, trial),
  times = c(12, 24),
  label_header = "**{time} Month**"
)

# Example 2 ----------------------------------
# Pass a data frame
tbl_survfit_ex2 <- tbl_survfit(
  trial,
  y = Surv(ttdeath, death),
  include = c(trt, grade),
  probs = 0.5,
  label_header = "**Median Survival**"
)

# Example 3 ----------------------------------
# Pass a list of survfit() objects
tbl_survfit_ex3 <-
  list(
    survfit(Surv(ttdeath, death) ~ 1, trial),
    survfit(Surv(ttdeath, death) ~ trt, trial)
  ) %>%
  tbl_survfit(times = c(12, 24))

# Example 4 Competing Events Example ---------
# adding a competing event for death (cancer vs other causes)
set.seed(1123)
library(dplyr, warn.conflicts = FALSE, quietly = TRUE)
trial2 <- trial %>%
  mutate(
    death_cr = case_when(
      death == 0 ~ "censor",
      runif(n()) < 0.5 ~ "death from cancer",
      TRUE ~ "death other causes"
    ) %>% factor()
  )

survfit_cr_ex4 <-
  survfit(Surv(ttdeath, death_cr) ~ grade, data = trial2) %>%
  tbl_survfit(times = c(12, 24), label = "Tumor Grade")
#> tbl_survfit: Multi-state model detected. Showing probabilities into state 'death from cancer'