Generate missing data
genMiss(
dtName,
missDefs,
idvars,
repeated = FALSE,
periodvar = "period",
envir = parent.frame()
)
Missing data matrix indexed by idvars (and period if relevant)
def1 <- defData(varname = "m", dist = "binary", formula = .5)
def1 <- defData(def1, "u", dist = "binary", formula = .5)
def1 <- defData(def1, "x1", dist = "normal", formula = "20*m + 20*u", variance = 2)
def1 <- defData(def1, "x2", dist = "normal", formula = "20*m + 20*u", variance = 2)
def1 <- defData(def1, "x3", dist = "normal", formula = "20*m + 20*u", variance = 2)
dtAct <- genData(1000, def1)
defM <- defMiss(varname = "x1", formula = .15, logit.link = FALSE)
defM <- defMiss(defM, varname = "x2", formula = ".05 + m * 0.25", logit.link = FALSE)
defM <- defMiss(defM, varname = "x3", formula = ".05 + u * 0.25", logit.link = FALSE)
defM <- defMiss(defM, varname = "u", formula = 1, logit.link = FALSE) # not observed
defM
#> varname formula logit.link baseline monotonic
#> <char> <char> <lgcl> <lgcl> <lgcl>
#> 1: x1 0.15 FALSE FALSE FALSE
#> 2: x2 .05 + m * 0.25 FALSE FALSE FALSE
#> 3: x3 .05 + u * 0.25 FALSE FALSE FALSE
#> 4: u 1 FALSE FALSE FALSE
# Generate missing data matrix
missMat <- genMiss(dtAct, defM, idvars = "id")
missMat
#> Key: <id>
#> id x1 x2 x3 u m
#> <int> <int> <int> <int> <int> <num>
#> 1: 1 1 0 0 1 0
#> 2: 2 0 0 0 1 0
#> 3: 3 0 0 0 1 0
#> 4: 4 0 0 0 1 0
#> 5: 5 1 1 1 1 0
#> ---
#> 996: 996 0 0 0 1 0
#> 997: 997 0 0 0 1 0
#> 998: 998 0 0 1 1 0
#> 999: 999 0 0 0 1 0
#> 1000: 1000 0 0 0 1 0
# Generate observed data from actual data and missing data matrix
dtObs <- genObs(dtAct, missMat, idvars = "id")
dtObs
#> Key: <id>
#> id m u x1 x2 x3
#> <int> <int> <int> <num> <num> <num>
#> 1: 1 1 NA NA 21.1885831 20.8909210
#> 2: 2 0 NA -1.969552 -0.2170204 0.1291439
#> 3: 3 0 NA -1.678498 -1.2700800 -1.0723500
#> 4: 4 1 NA 38.018644 41.1946704 41.1647107
#> 5: 5 1 NA NA NA NA
#> ---
#> 996: 996 0 NA 18.649865 21.1546430 19.7298909
#> 997: 997 1 NA 17.800273 21.5847249 18.0452866
#> 998: 998 1 NA 39.993959 39.7405706 NA
#> 999: 999 0 NA 1.717430 -2.4099942 -1.6156891
#> 1000: 1000 0 NA 20.935144 20.4240502 21.1476167