Skip to contents

Applies a given dropout function to a simulated trial dataset, in order to create a "missing" variable representing subject dropout

Usage

createDropout(
  data,
  dropFunc,
  seed = .deriveFromMasterSeed(),
  idCol = getEctdColName("Subject"),
  timeCol = getEctdColName("Time"),
  flagName = getEctdColName("Missing"),
  ...
)

Arguments

data

(Required) Data frame to which to add a "missingness" flag

dropFunc

(Required) Drop out function to apply to the data. The function must return a vector of booleans

seed

(Optional) Random generation seed. By default, the current random seed is used

idCol

(Optional) The name of the subject varuable in the data. "SUBJ" by default

timeCol

(Optional) The name of the time column in the data. "TIME" by default

flagName

(Optional) The name of the missing variable to create in the data. "MISSING" by default

...

(Optional) Extra arguments to be passed directly to the dropout function. No arguments are passed by default

Value

An updated data frame with added/updated "missing" column

Details

This function will accept (and check) a "dropout" function, which is to applied to the data. This function must return a boolean vector. The dropout function supplied will be applied to the data provided (possibly with extra arguments supplied with the ellipses). Once a boolean vector is returned, the function will ensure dropout is "retained" over time within subject (so if a subject drops out at visit 1, he/she is also missing at visits 2, 3 etc.). This "retained" boolean vector is added to the dataset (or used to enhance an existing "missing" flag) and the updated data is returned.

Author

Mike K Smith mstoolkit@googlemail.com

Examples


if (FALSE) {

dFun <- function(data, prop) sample(0:1, nrow(data), replace=TRUE, prob=c(1-prop, prop))
createDropout(data=myDf, dropFunc=dFun, prop=.05)
#     SUBJ TIME MISSING
#  1     1    1       0
#  2     1    2       0
#  3     1    3       0
#  4     1    4       0
#  5     1    5       0
#  6     2    1       0
#  7     2    2       0
#  8     2    3       1
#  9     2    4       1
#  10    2    5       1
#  11    3    1       0
#  12    3    2       1
#  13    3    3       1
#  14    3    4       1
#  15    3    5       1
}