simple_restriction: Simple Restriction

View source: R/restrictions.R

simple_restrictionR Documentation

Simple Restriction

Description

This function assists the implementation of a restriction on a covariate in the data table newdf by setting lines where the covariate is restricted to a user-specified value.

Usage

simple_restriction(newdf, pool, restriction, time_name, t, ...)

Arguments

newdf

Data table containing the simulated data at time t.

pool

Data table containing the simulated data at times before t.

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 TRUE for the covariate to be modeled; its third entry a function that executes other specific actions based on the condition (in this case, this function); and its fourth entry some value used by the function (in this case, the value the user desires to assign to the covariate when it is not modeled).

time_name

Character string specifying the name of the time variable in pool and newdf.

t

Integer specifying the current time index.

...

This argument is not used in this function.

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 with a simple restriction

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, assume we have deterministic knowledge that L1 equals 0
restrictions <- list(c('L1', 't0 != 5', simple_restriction, 0))

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,
                                 restrictions = restrictions,
                                 int_descript = int_descript,
                                 histories = histories, histvars = histvars,
                                 basecovs = c('L3'), nsimul = nsimul,
                                 seed = 1234)
gform_basic



gfoRmula documentation built on May 31, 2023, 9:46 p.m.