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 = NULL
)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 for label.
- show_labels
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
integer)
indent modifiers for the labels.
Value
The statistics are:
- 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.
The statistics are:
- 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.
Functions
s_surv_timepoint(): Statistics Function which analyzes survival rate.a_surv_timepoint(): Formatted Analysis function which can be further customized by callingrtables::make_afun()on it. It is used asafuninrtables::analyze().s_surv_timepoint_diff(): Statistics Function which analyzes difference between two survival rates.a_surv_timepoint_diff(): Formatted Analysis function which can be further customized by callingrtables::make_afun()on it. It is used asafuninrtables::analyze().surv_timepoint(): Analyze Function which adds the survival rate analysis to the input layout. Note that additional formatting arguments can be used here.
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")
# Internal function - s_surv_timepoint
if (FALSE) {
s_surv_timepoint(df, .var = "AVAL", time_point = 7, is_event = "is_event")
}
# Internal function - a_surv_timepoint
if (FALSE) {
a_surv_timepoint(df, .var = "AVAL", time_point = 7, is_event = "is_event")
}
df_ref_group <- adtte_f %>%
filter(ARMCD == "ARM B")
# Internal function - s_surv_timepoint_diff
if (FALSE) {
s_surv_timepoint_diff(df, df_ref_group, .in_ref_col = TRUE, .var = "AVAL", is_event = "is_event")
s_surv_timepoint_diff(
df,
df_ref_group,
.in_ref_col = FALSE,
.var = "AVAL",
time_point = 7,
is_event = "is_event"
)
}
# Internal function - a_surv_timepoint_diff
if (FALSE) {
a_surv_timepoint_diff(
df,
df_ref_group,
.in_ref_col = FALSE,
.var = "AVAL",
time_point = 7,
is_event = "is_event"
)
}
# 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