Usage
s_surv_timepoint(
df,
.var,
time_point,
is_event,
control = control_surv_timepoint()
)
a_surv_timepoint(
df,
.var,
time_point,
is_event,
control = control_surv_timepoint()
)
s_surv_timepoint_diff(
df,
.var,
.ref_group,
.in_ref_col,
time_point,
control = control_surv_timepoint(),
...
)
a_surv_timepoint_diff(
df,
.var,
.ref_group,
.in_ref_col,
time_point,
control = control_surv_timepoint(),
...
)
surv_timepoint(
lyt,
vars,
...,
table_names_suffix = "",
var_labels = "Time",
show_labels = "visible",
method = c("surv", "surv_diff", "both"),
.stats = c("pt_at_risk", "event_free_rate", "rate_ci", "rate_diff", "rate_diff_ci",
"ztest_pval"),
.formats = NULL,
.labels = NULL,
.indent_mods = if (method == "both") {
c(rate_diff = 1L, rate_diff_ci = 2L,
ztest_pval = 2L)
} else {
c(rate_diff_ci = 1L, ztest_pval = 1L)
}
)Arguments
- df
(
data.frame)
data set containing all analysis variables.- .var
(
string)
single variable name that is passed byrtableswhen requested by a statistics function.- time_point
(
number)
survival time point of interest.- is_event
(
logical)TRUEif event,FALSEif time to event is censored.- control
-
(
list)
parameters for comparison details, specified by using the helper functioncontrol_surv_timepoint(). Some possible parameter options are:conf_level(proportion)
confidence level of the interval for survival rate.conf_type(string)
confidence interval type. Options are "plain" (default), "log", "log-log", see more insurvival::survfit(). Note option "none" is no longer supported.time_point(number)
survival time point of interest.
- .ref_group
(
data.frameorvector)
the data corresponding to the reference group.- .in_ref_col
(
logical)TRUEwhen working with the reference level,FALSEotherwise.- ...
additional arguments for the lower level functions.
- lyt
(
layout)
input layout where analyses will be added to.- vars
(
character)
variable names for the primary analysis variable to be iterated over.- table_names_suffix
(
string)
optional suffix for thetable_namesused for thertablesto avoid warnings from duplicate table names.- var_labels
(
character)
character for label.- show_labels
(
string)
label visibility: one of "default", "visible" and "hidden".- method
(
string)
eithersurv(survival estimations),surv_diff(difference in survival with the control) orboth.- .stats
(
character)
statistics to select for the table.- .formats
(named
characterorlist)
formats for the statistics.- .labels
(named
character)
labels for the statistics (without indent).- .indent_mods
(named
vectorofinteger)
indent modifiers for the labels. Each element of the vector should be a name-value pair with name corresponding to a statistic specified in.statsand value the indentation for that statistic's row label.
Value
-
s_surv_timepoint()returns the statistics:pt_at_risk: Patients remaining at risk.event_free_rate: Event-free rate (%).rate_se: Standard error of event free rate.rate_ci: Confidence interval for event free rate.
a_surv_timepoint()returns the corresponding list with formattedrtables::CellValue().
-
s_surv_timepoint_diff()returns the statistics:rate_diff: Event-free rate difference between two groups.rate_diff_ci: Confidence interval for the difference.ztest_pval: p-value to test the difference is 0.
a_surv_timepoint_diff()returns the corresponding list with formattedrtables::CellValue().
surv_timepoint()returns a layout object suitable for passing to further layouting functions, or tortables::build_table(). Adding this function to anrtablelayout will add formatted rows containing the statistics froms_surv_timepoint()and/ors_surv_timepoint_diff()to the table layout depending on the value ofmethod.
Functions
s_surv_timepoint(): Statistics function which analyzes survival rate.a_surv_timepoint(): Formatted analysis function which is used asafuninsurv_timepoint()whenmethod = "surv".s_surv_timepoint_diff(): Statistics function which analyzes difference between two survival rates.a_surv_timepoint_diff(): Formatted analysis function which is used asafuninsurv_timepoint()whenmethod = "surv_diff".surv_timepoint(): Layout-creating function which can take statistics function arguments and additional format arguments. This function is a wrapper forrtables::analyze().
Examples
library(dplyr)
adtte_f <- tern_ex_adtte %>%
filter(PARAMCD == "OS") %>%
mutate(
AVAL = day2month(AVAL),
is_event = CNSR == 0
)
df <- adtte_f %>%
filter(ARMCD == "ARM A")
df_ref_group <- adtte_f %>%
filter(ARMCD == "ARM B")
# Survival at given time points.
basic_table() %>%
split_cols_by(var = "ARMCD", ref_group = "ARM A") %>%
add_colcounts() %>%
surv_timepoint(
vars = "AVAL",
var_labels = "Months",
is_event = "is_event",
time_point = 7
) %>%
build_table(df = adtte_f)
#> ARM A ARM B ARM C
#> (N=69) (N=73) (N=58)
#> ———————————————————————————————————————————————————————————————————————————————
#> 7 Months
#> Patients remaining at risk 54 57 42
#> Event Free Rate (%) 84.89 79.43 75.50
#> 95% CI (76.24, 93.53) (70.15, 88.71) (64.33, 86.67)
# Difference in survival at given time points.
basic_table() %>%
split_cols_by(var = "ARMCD", ref_group = "ARM A") %>%
add_colcounts() %>%
surv_timepoint(
vars = "AVAL",
var_labels = "Months",
is_event = "is_event",
time_point = 9,
method = "surv_diff",
.indent_mods = c("rate_diff" = 0L, "rate_diff_ci" = 2L, "ztest_pval" = 2L)
) %>%
build_table(df = adtte_f)
#> ARM A ARM B ARM C
#> (N=69) (N=73) (N=58)
#> ——————————————————————————————————————————————————————————————————————————
#> 9 Months
#> Difference in Event Free Rate -9.64 -13.03
#> 95% CI (-22.80, 3.52) (-27.59, 1.53)
#> p-value (Z-test) 0.1511 0.0794
# Survival and difference in survival at given time points.
basic_table() %>%
split_cols_by(var = "ARMCD", ref_group = "ARM A") %>%
add_colcounts() %>%
surv_timepoint(
vars = "AVAL",
var_labels = "Months",
is_event = "is_event",
time_point = 9,
method = "both"
) %>%
build_table(df = adtte_f)
#> ARM A ARM B ARM C
#> (N=69) (N=73) (N=58)
#> ——————————————————————————————————————————————————————————————————————————————————
#> 9 Months
#> Patients remaining at risk 53 53 39
#> Event Free Rate (%) 84.89 75.25 71.86
#> 95% CI (76.24, 93.53) (65.32, 85.17) (60.14, 83.57)
#> Difference in Event Free Rate -9.64 -13.03
#> 95% CI (-22.80, 3.52) (-27.59, 1.53)
#> p-value (Z-test) 0.1511 0.0794