Create an observed data set that includes missing data
genObs(dtName, dtMiss, idvars)
A data table that represents observed data, including missing data
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 0 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 0 0 1 1 0
#> ---
#> 996: 996 0 0 0 1 0
#> 997: 997 0 0 0 1 0
#> 998: 998 0 0 0 1 0
#> 999: 999 0 0 0 1 0
#> 1000: 1000 0 1 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 17.1661367 20.8383957 20.0615940
#> 2: 2 0 NA 0.6276502 0.3794982 -0.2374385
#> 3: 3 0 NA 1.9410362 0.1180233 -1.9132918
#> 4: 4 0 NA 19.2127189 18.7326903 18.7449801
#> 5: 5 1 NA 19.3449707 20.3654118 NA
#> ---
#> 996: 996 1 NA 41.2886294 38.9003498 42.3162857
#> 997: 997 0 NA 20.9883677 23.0413971 19.5383268
#> 998: 998 0 NA 0.4673572 1.1353294 -3.0981135
#> 999: 999 1 NA 39.6008298 39.1885511 39.4920356
#> 1000: 1000 1 NA 21.4509763 NA 20.5039990