View source: R/add_risktable.R
add_risktable | R Documentation |
Add risk tables below the plot showing the number at risk, events observed, and number of censored observations.
add_risktable(
times = NULL,
risktable_stats = c("n.risk", "cum.event"),
risktable_group = c("auto", "strata", "risktable_stats"),
risktable_height = NULL,
stats_label = NULL,
combine_groups = FALSE,
theme = theme_risktable_default(),
size = 3.5,
...
)
times |
numeric vector of times where risk table values will be placed.
Default are the times shown on the x-axis. The times passed here will not
modify the tick marks shown on the figure. To modify which tick marks are
shown, use |
risktable_stats |
character vector of statistics to show in the risk table.
Must be one or more of
See additional details below. |
risktable_group |
String indicating the grouping variable for the risk tables.
Default is
|
risktable_height |
A numeric value between 0 and 1 indicates the proportion of the final plot the risk table will occupy. |
stats_label |
named vector or list of custom labels. Names are the statistics
from |
combine_groups |
logical indicating whether to combine the statistics
in the risk table across groups. Default is |
theme |
A risk table theme. Default is |
size , ... |
arguments passed to |
a ggplot2 figure
You can customize how the statistics in the risk table are displayed by
utilizing glue-like syntax in the risktable_stats
argument.
For example, if you prefer to have the number at risk and the number of events
on the same row, you can use risktable_stats = "{n.risk} ({cum.event})"
.
You can further customize the table to include the risk estimates using
elements c("estimate", "conf.low", "conf.high", "std.error")
. When using
these elements, you'll likely need to include a function to round the estimates
and multiply them by 100.
add_risktable( risktable_stats = c("{n.risk} ({cum.event})", "{round(estimate*100)}% ({round(conf.low*100)}, {round(conf.high*100)})"), stats_label = c("At Risk (Cum. Events)", "Survival (95% CI)") )
You can also pass glue-like syntax to
risktable_stats
to format the numbers displayed in
the risk table. This is particularly helpful when working with weighted
survfit2
objects for which the risk table may display too many decimals by
default e.g., for weighted patients at risk.
add_risktable( risktable_stats = c("{format(round(n.risk, 2), nsmall = 2)}", "{format(round(n.event, 2), nsmall = 2)}"), stats_label = c("N effective patients at risk", "N effective events") )
The ggcuminc()
can plot multiple competing events.
The "cum.event"
and "n.event"
statistics are the sum of all events across
outcomes shown on the plot.
Visit the gallery for examples modifying the default figures
p <-
survfit2(Surv(time, status) ~ sex, data = df_lung) %>%
ggsurvfit() +
add_censor_mark() +
add_confidence_interval() +
scale_ggsurvfit()
# using the function defaults
p + add_risktable()
# change the statistics shown and the label
p +
add_risktable(
risktable_stats = "n.risk",
stats_label = list(n.risk = "Number at Risk"),
)
p +
add_risktable(
risktable_stats = "{n.risk} ({cum.event})"
)
p +
add_risktable(
risktable_stats = c("n.risk", "cum.event"),
combine_groups = TRUE
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.