carry_forward {gfoRmula} | R Documentation |
Carry Forward
Description
This function assists the implemention of a restriction on a covariate in the date
table newdf
. A particular covariate is simulated only when some condition
(usually a covariate representing whether a doctor's visit occurred or not) is TRUE
.
If the condition is FALSE
, the covariate value is not simulated for that time point
and the value is instead carried over from the previous time point.
Usage
carry_forward(newdf, pool, restriction, time_name, t, int_visit_type, intvar)
Arguments
newdf |
Data table containing the simulated data at time |
pool |
Data table containing the simulated data at times before |
restriction |
List of vectors. Each vector contains as its first entry
the covariate affected by the restriction; its second entry
the condition that must be |
time_name |
Character string specifying the name of the time variable in |
t |
Integer specifying the current time index. |
int_visit_type |
Logical scalar specifying whether to carry forward the intervened value (rather than the natural value) of the treatment variables(s) when performing a carry forward restriction type |
intvar |
A vector specifying the name(s) of the variable(s) to be intervened on. |
Value
No value is returned. The data table newdf
is modified in place.
Examples
## Estimating the effect of static treatment strategies on risk of a
## failure event
id <- 'id'
time_points <- 7
time_name <- 't0'
covnames <- c('L1', 'L2', 'A')
outcome_name <- 'Y'
covtypes <- c('binary', 'bounded normal', 'binary')
histories <- c(lagged, lagavg)
histvars <- list(c('A', 'L1', 'L2'), c('L1', 'L2'))
covparams <- list(covmodels = c(L1 ~ lag1_A + lag_cumavg1_L1 + lag_cumavg1_L2 +
L3 + t0,
L2 ~ lag1_A + L1 + lag_cumavg1_L1 +
lag_cumavg1_L2 + L3 + t0,
A ~ lag1_A + L1 + L2 + lag_cumavg1_L1 +
lag_cumavg1_L2 + L3 + t0))
ymodel <- Y ~ A + L1 + L2 + L3 + lag1_A + lag1_L1 + lag1_L2 + t0
intvars <- list('A', 'A')
interventions <- list(list(c(static, rep(0, time_points))),
list(c(static, rep(1, time_points))))
int_descript <- c('Never treat', 'Always treat')
nsimul <- 10000
# At t0 == 5, assign L1 its value at the previous time point
restrictions <- list(c('L2', 't0 != 5', carry_forward))
gform_basic <- gformula_survival(obs_data = basicdata_nocomp, id = id,
time_points = time_points,
time_name = time_name, covnames = covnames,
outcome_name = outcome_name,
covtypes = covtypes,
covparams = covparams, ymodel = ymodel,
intvars = intvars,
interventions = interventions,
int_descript = int_descript,
restrictions = restrictions,
histories = histories, histvars = histvars,
basecovs = c('L3'), nsimul = nsimul,
seed = 1234)
gform_basic