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