amices / mice

Multivariate Imputation by Chained Equations
https://amices.org/mice/
GNU General Public License v2.0
444 stars 107 forks source link

logistic regression controlling for covariates with imputed data #425

Closed Phazha closed 3 years ago

Phazha commented 3 years ago

Hi, I apologise my previous question was not in a reproducible format.

I am looking to reproduce the code at the bottom of the page, which has worked fine before with non imputed data.

My main issue when using imputed data comes from when I am trying to calculate the confidence intervals within a matrix, as seen below, where I get a message saying: "Error in format(round(mod1$2.5 %, 2), nsmall = 2)[2:n, ]: incorrect number of dimensions".

Below I've simplified the data to include 199 observations at random, for the sake of an example.

#Load packages
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(lattice)
library(plyr)
#> ------------------------------------------------------------------------------
#> You have loaded plyr after dplyr - this is likely to cause problems.
#> If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
#> library(plyr); library(dplyr)
#> ------------------------------------------------------------------------------
#> 
#> Attaching package: 'plyr'
#> The following objects are masked from 'package:dplyr':
#> 
#>     arrange, count, desc, failwith, id, mutate, rename, summarise,
#>     summarize
library(gdata)
#> gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.
#> 
#> gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
#> 
#> Attaching package: 'gdata'
#> The following objects are masked from 'package:dplyr':
#> 
#>     combine, first, last
#> The following object is masked from 'package:stats':
#> 
#>     nobs
#> The following object is masked from 'package:utils':
#> 
#>     object.size
#> The following object is masked from 'package:base':
#> 
#>     startsWith
library(epiDisplay)
#> Loading required package: foreign
#> Loading required package: survival
#> Loading required package: MASS
#> 
#> Attaching package: 'MASS'
#> The following object is masked from 'package:dplyr':
#> 
#>     select
#> Loading required package: nnet
#> 
#> Attaching package: 'epiDisplay'
#> The following object is masked from 'package:lattice':
#> 
#>     dotplot
library(mice)
#> 
#> Attaching package: 'mice'
#> The following objects are masked from 'package:epiDisplay':
#> 
#>     cc, cci
#> The following object is masked from 'package:stats':
#> 
#>     filter
#> The following objects are masked from 'package:base':
#> 
#>     cbind, rbind
library(reprex)
df3 <- data.frame(
  dem = c(0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
          1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,
          0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,
          0,0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,
          0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,0,0,
          0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,
          0,0,1,1,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,
          0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
          0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0),
  age2 = c(7.8,7.9,8.4,9.6,7.8,7.9,9.7,8.4,8.5,
           7.7,8.9,8,8.1,9.9,7.6,7.7,8.6,9.4,7.5,7,8,8.8,
           8.1,8.9,8.5,8.2,9,8.1,5.1,7.5,7.3,8.3,7.9,8,8.1,9.3,
           8,6.3,9.2,8.3,8.3,7.4,7.9,8,9.1,8,6.2,8.7,9,8.9,
           9,8.3,9,8.7,8.6,8.9,6.5,8.8,7.7,6.5,9,5.5,4.9,7.1,
           8.6,8,8.9,8.2,7.9,6.8,7.5,7,8.3,8.5,8.5,7.3,8.6,
           8.7,9,7.9,8.8,8.1,8.7,9,8.8,8.8,8,8,8.9,7.9,6.8,
           9.3,9.1,8.4,7,8.5,6.3,8.9,9.2,8.5,7.9,7.5,9.3,8.8,
           9.2,8.3,8.7,8,8.5,8.5,8.1,7.3,8.2,7.8,8.7,8.5,7.9,
           7.1,7.5,7.8,6.6,8.5,8.9,9,8.1,9.1,8.6,8.5,8.6,7.2,
           6.8,6.7,7.9,8.7,7.7,8.4,6.5,6.7,7.3,7.2,8.9,8.5,8.4,
           8.7,8.2,7.5,5.9,8.9,8.8,8.6,6.3,8.2,9.2,8.1,9.2,8.7,
           9.1,7.8,8.7,7.5,8.1,8,8.8,7.8,8.1,8.5,9.2,7.9,8.6,
           6.5,9.7,8.4,8.7,8.3,7.4,7.9,8.3,7.2,8.4,8.4,7.7,
           8.2,9.4,8.6,7.2,8,8.2,7.6,6.5,7.8,9.1,8.9,7.4,9.2,
           7.8,6,7.7,8.6,8.3),
  gender = as.factor(c("Male","Female",
                       "Male","Female","Female","Female","Female","Male",
                       "Male","Female","Male","Male","Male","Female",
                       "Male","Female","Male","Female","Female","Female",
                       "Male","Male","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Female",
                       "Female","Male","Female","Female","Male","Female",
                       "Male","Male","Male","Male","Female","Male",
                       "Female","Male","Male","Male","Male","Female",
                       "Male","Male","Male","Female","Female","Male",
                       "Female","Male","Female","Male","Male","Female",
                       "Male","Male","Female","Female","Male","Female",
                       "Male","Female","Female","Female","Male","Male",
                       "Female","Male","Male","Female","Male","Female",
                       "Male","Female","Female","Male","Female",
                       "Female","Female","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Female",
                       "Female","Male","Female","Female","Female","Male",
                       "Female","Female","Female","Female","Female",
                       "Female","Female","Male","Female","Male","Female",
                       "Female","Female","Female","Female","Male","Male",
                       "Female","Female","Male","Male","Male","Female",
                       "Female","Male","Male","Female","Female",
                       "Male","Female","Male","Male","Female","Male",
                       "Female","Male","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Male","Male",
                       "Female","Male","Male","Male","Female","Female",
                       "Male","Female","Female","Female","Female",
                       "Female","Female","Female","Male","Female","Female",
                       "Female","Female","Female","Male","Female",
                       "Female","Female","Female","Male","Female","Female",
                       "Male","Female","Female","Female","Female",
                       "Male","Male","Female","Male","Female","Female",
                       "Female","Male","Female","Male","Male","Female",
                       "Female","Male","Male","Female","Female","Male",
                       "Male")),
  ethnic = as.factor(c("White","White",
                       "Black","White","Black","White","Black","White",
                       "White","S.Asian",NA,"White","White","White",
                       "White","Other","White","White","Black","White",
                       "White","S.Asian","Black","White","Black","White",
                       "White",NA,"White","Black","White","White",
                       "White","Black","White","Other","Black",NA,"White",
                       "White","White","Black","White","White","Black",
                       "White","S.Asian","Other","White","Black",
                       "White","White",NA,"White","Black","White","White",
                       "White",NA,"S.Asian","White","White",NA,"White",
                       "Black","Other","Black","Black","White","White",
                       "White","S.Asian","White","Black",NA,"Black",
                       "S.Asian","Black",NA,"S.Asian","S.Asian","White",
                       "S.Asian","White",NA,"White","White","White",
                       "White","White","S.Asian","White","White",
                       "S.Asian","White","S.Asian","White","White","White",
                       "Black","White","S.Asian","White","Black","Black",
                       "White","White","S.Asian","White","Black",NA,
                       "White","Black","Black","S.Asian","White",
                       "White","Other","White","S.Asian","White","White",
                       "S.Asian","White","Black","S.Asian","White","White",
                       "White",NA,"White","White","S.Asian","Other",
                       "White","Black","Other","Black","White","White",
                       "White","White","White","White","White","Black",
                       "White","White","White","Other","S.Asian",
                       "Black","White","S.Asian","White","Other","White",
                       "S.Asian","S.Asian","White","Black","Black",
                       "White","White","White","White","Black","Black",
                       "White","Black","White","White","Black","White",
                       "Black","Black","Black","Other","White","S.Asian",
                       "White","White","White","White","Other","Black",
                       "Black","White","Other","White","Black","White",
                       "Black","White","S.Asian","White","White",
                       "White","White")),
  underwt = as.factor(c("Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",NA,
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        NA,"Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",NA,
                        "Never","Yes","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Post-Dem",NA,"Yes","Yes","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Yes","Never","Never",NA,
                        NA,"Never","Never","Never","Never",NA,"Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never")),
  hypert = as.factor(c("Post-Dem","Normal",
                       "Yes","Yes","Post-Dem","Normal","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Post-Dem","Yes","Yes",
                       "Yes","Yes","Post-Dem","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Normal","Post-Dem","Normal","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Post-Dem","Normal","Yes","Post-Dem","Normal","Normal",
                       "Normal","Yes","Yes","Normal","Yes","Yes","Yes",
                       "Normal","Normal","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Post-Dem","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Normal","Post-Dem","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Normal","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Post-Dem","Normal","Yes",
                       "Post-Dem","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Post-Dem","Normal","Yes",
                       "Normal","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Normal","Post-Dem","Post-Dem",
                       "Yes","Yes","Yes","Normal","Yes","Yes","Yes",
                       "Yes","Normal","Yes","Yes","Normal","Yes",
                       "Post-Dem","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Post-Dem","Yes",NA,"Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Post-Dem","Yes","Yes","Yes",
                       "Yes","Yes","Normal","Normal","Yes","Normal")),
  diab = as.factor(c("Normal","Normal",
                     "Yes","Normal","Post-Dem","Normal","Normal","Yes",
                     "Yes","Yes","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal","Normal",
                     "Post-Dem","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal","Normal",
                     "Normal","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Yes","Yes","Yes","Yes","Yes",
                     "Yes","Normal","Yes","Normal","Normal","Post-Dem",
                     "Yes","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Yes","Yes","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Yes","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Yes","Post-Dem",
                     "Normal","Normal","Yes","Yes","Normal","Yes",
                     "Post-Dem","Normal","Yes","Normal","Normal","Yes",
                     "Yes","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Post-Dem","Yes",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Normal","Post-Dem","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal",
                     "Post-Dem","Normal","Normal","Yes","Normal","Normal",
                     "Normal","Yes","Normal","Normal",NA,"Yes",
                     "Normal","Normal","Normal","Normal","Yes","Normal",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Post-Dem","Yes","Yes","Normal","Yes","Normal","Yes",
                     "Normal","Yes","Yes","Yes","Normal","Yes",
                     "Post-Dem","Normal","Normal","Normal","Normal",
                     "Yes","Normal","Yes","Yes","Normal","Normal",
                     "Normal","Normal")),
  depress = as.factor(c("Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Yes","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal",NA,"Normal","Normal","Normal",
                        "Normal","Normal","Yes","Post-Dem","Normal",
                        "Normal","Normal","Yes","Normal","Normal","Normal",
                        "Normal","Normal","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Yes",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes","Yes",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes",
                        "Normal","Normal","Yes","Yes","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Yes","Normal","Yes","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Yes","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal")),
  deaf = as.factor(c("Normal","Normal",
                     "Normal","Yes","Post-Dem","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Post-Dem","Normal",
                     "Normal","Normal","Normal","Normal","Post-Dem",
                     "Normal","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Post-Dem","Normal","Normal","Post-Dem","Yes",
                     "Yes","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Yes",
                     "Yes","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Yes","Normal",
                     "Post-Dem","Normal","Normal","Normal","Post-Dem",
                     "Normal","Normal","Normal","Yes","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes","Normal",
                     "Post-Dem","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Yes","Post-Dem",
                     "Yes","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Post-Dem","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes","Normal")),
  smoke_grp = as.factor(c("Current smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Current smoker","Never smoker","Ex-smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Current smoker",
                          "Current smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Never smoker","Current smoker","Current smoker",
                          "Ex-smoker","Ex-smoker","Never smoker","Ex-smoker",
                          "Ex-smoker","Ex-smoker","Ex-smoker","Ex-smoker",
                          "Current smoker","Current smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Current smoker","Never smoker","Ex-smoker","Never smoker",
                          "Ex-smoker","Ex-smoker","Current smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",NA,
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Current smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Ex-smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Ex-smoker","Current smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker","Ex-smoker",
                          "Ex-smoker","Never smoker",NA,"Current smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Ex-smoker","Ex-smoker",NA,
                          "Current smoker","Never smoker","Current smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker",NA,"Never smoker","Ex-smoker",
                          "Never smoker","Current smoker","Ex-smoker",
                          "Ex-smoker","Never smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Ex-smoker","Ex-smoker",
                          "Current smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker")),
  head_inj = as.factor(c("Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Post-Dem","Normal","Yes","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Yes","Normal","Normal","Normal","Normal",
                         "Yes","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Yes","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Yes","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Post-Dem","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Yes","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal")),
  imd_decile = as.factor(c("1","5","3","1","2",
                           "4","3","2","1","3",NA,"1","2","2","5",NA,
                           "3","3","1","1","6","7","3","2","2","3",
                           "2","3","2","2","3","1","3","2","1","1","1",
                           "1","1","1","3","2","3",NA,"3","3","4","2",
                           "2","2","4","5","3","3","2","2","2","3",
                           NA,"3","1","3","4","3","3","2","3","2","5",
                           "9","1","4","1","1","2","4","3","3","5","2",
                           "2","3","5","3","1","3","1","1","2","2",
                           "2","1",NA,"5","3","4","2","5","2","3",NA,
                           "2","1","3","3","3","3","5","2","2","2","3",
                           "1","2","3","4","5","4","2","1","3","6",
                           "4","1","4","2","1","3","2","2","1","3","2",
                           "4","4","1","3","3","2","1","7","4","3","3",
                           "4","2","2","3","3","3","3","3","2","1",
                           NA,"2",NA,"2","3","1","2","2","4","1","2",
                           "8","3","3","2","2","2","3","1","3","2","2",
                           "1","2","2","2","7","1","2","5","3","2",
                           "2","2","3","5","3","3","4","2","2","1","4",
                           "9","3"))
)

#add combined variables in x
varlist1 <- c("age2", "gender", "ethnic", "imd_decile", "underwt",
              "hypert", "diab", "depress", "deaf", "smoke_grp", "head_inj")

for(i in 1:length(varlist1)){
  print(varlist1[i])
  df3$x <- df3[, varlist1[i]]
}
#> [1] "age2"
#> [1] "gender"
#> [1] "ethnic"
#> [1] "imd_decile"
#> [1] "underwt"
#> [1] "hypert"
#> [1] "diab"
#> [1] "depress"
#> [1] "deaf"
#> [1] "smoke_grp"
#> [1] "head_inj"

#Create imputed datasets
df4 <- mice(df3, m = 5, seed = 500)
#> 
#>  iter imp variable
#>   1   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#> Warning: Number of logged events: 1
summary(df4)
#> Class: mids
#> Number of multiple imputations:  5 
#> Imputation methods:
#>        dem       age2     gender     ethnic    underwt     hypert       diab 
#>         ""         ""         ""  "polyreg"  "polyreg"  "polyreg"  "polyreg" 
#>    depress       deaf  smoke_grp   head_inj imd_decile          x 
#>  "polyreg"         ""  "polyreg"         ""  "polyreg"         "" 
#> PredictorMatrix:
#>         dem age2 gender ethnic underwt hypert diab depress deaf smoke_grp
#> dem       0    1      1      1       1      1    1       1    1         1
#> age2      1    0      1      1       1      1    1       1    1         1
#> gender    1    1      0      1       1      1    1       1    1         1
#> ethnic    1    1      1      0       1      1    1       1    1         1
#> underwt   1    1      1      1       0      1    1       1    1         1
#> hypert    1    1      1      1       1      0    1       1    1         1
#>         head_inj imd_decile x
#> dem            1          1 0
#> age2           1          1 0
#> gender         1          1 0
#> ethnic         1          1 0
#> underwt        1          1 0
#> hypert         1          1 0
#> Number of logged events:  1 
#>   it im dep      meth out
#> 1  0  0     collinear   x

#adjusted for age and gender
model1 <- with(df4, glm(dem ~ x + age2 + gender))
mod1 <- summary(pool(model1), exponentiate = TRUE, conf.int =TRUE)

for(i in 1:length(varlist1)){
  print(varlist1[i])
  if(i<=2){    # age and gender - only need one parameter to output
    n <- length(mod1$estimate)-2
    OR <- format(round(mod1$estimate, 2), nsmall=2)[2:n]
    ci1 <- as.matrix(format(round(mod1$`2.5 %`, 2), nsmall=2)[2:n,])
    ci2 <- as.matrix(format(round(mod1$`97.5 %`, 2), nsmall=2)[2:n,])
  }

  if(i>=3){
    n <- length(mod1$estimate)
    n2 <- n-2
    OR <- format(round(mod1$estimate, 2), nsmall=2)[2:n2]
    ci1 <- as.matrix(format(round(mod1$`2.5 %`, 2), nsmall=2)[2:n2,])
    ci2 <- as.matrix(format(round(mod1$`97.5 %`, 2), nsmall=2)[2:n2,])
  }

  if(i<=2){   # Age and gender only have one level each and R outputs this differently compared to multi-level vars
    ci1 <- ci1[1]
    ci2 <- ci2[2]
  }

  if(i>=3){
    ci1 <- ci1[,1]
    ci2 <- ci2[,2]
  }

  out <- paste0(OR, " (", ci1, ", ", ci2, ")")

  if(i==1){
    out2 <- out
  }
  if(i>1){
    out2 <- append(out2, out)
  }
}  
#> [1] "age2"
#> Error in format(round(mod1$`2.5 %`, 2), nsmall = 2)[2:n, ]: incorrect number of dimensions

out3 <- c(out2[1], "1", out2[2], "1", out2[3:5], "1", out2[6:14], "1", out2[15:16], "1", out2[17:18], 
          "1", out2[19:20], "1", out2[21:22], "1", out2[23:24], "1", out2[25:26], "1", out2[27:28])   
#> Error in eval(expr, envir, enclos): object 'out2' not found

Created on 2021-08-12 by the reprex package (v2.0.1)

Original script used on non-imputed data from a matched case- control [note that now that I've limited the data from 19,800 - 199 observations there are some outputs that look off, as this was a random deletion of rows. In the original non imputed data the below analysis works perfectly]:

varlist1 <- c("age2", "gender", "ethnic", "imd_decile", "underwt", "hypert", "diab", "depress",
              "deaf", "smoke_grp", "head_inj")

varlist2 <- c("age2", rep("gender",2), rep("ethnic",4), rep("imd_decile",10), rep("underwt",3),
              rep("hypert",3), rep("diab",3), rep("depress",3), rep("deaf",3), rep("smoke_grp",3), rep("head_inj",3))

varlist3 <- as.factor(c("Age", "Female", "Male", "White", "Black", "S.Asian", "Other", "1", "2", "3", "4",
                        "5", "6", "7", "8", "9", "10",
                        rep(c("Never", "Yes", "Post-Dem"),1),
                        rep(c("Normal", "Yes", "Post-Dem"),4),
                        "Never", "Ex-", "Current",
                        rep(c("Normal", "Yes", "Post-Dem"),1)))

#Load packages
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(lattice)
library(plyr)
#> ------------------------------------------------------------------------------
#> You have loaded plyr after dplyr - this is likely to cause problems.
#> If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
#> library(plyr); library(dplyr)
#> ------------------------------------------------------------------------------
#> 
#> Attaching package: 'plyr'
#> The following objects are masked from 'package:dplyr':
#> 
#>     arrange, count, desc, failwith, id, mutate, rename, summarise,
#>     summarize
library(gdata)
#> gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.
#> 
#> gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
#> 
#> Attaching package: 'gdata'
#> The following objects are masked from 'package:dplyr':
#> 
#>     combine, first, last
#> The following object is masked from 'package:stats':
#> 
#>     nobs
#> The following object is masked from 'package:utils':
#> 
#>     object.size
#> The following object is masked from 'package:base':
#> 
#>     startsWith
library(epiDisplay)
#> Loading required package: foreign
#> Loading required package: survival
#> Loading required package: MASS
#> 
#> Attaching package: 'MASS'
#> The following object is masked from 'package:dplyr':
#> 
#>     select
#> Loading required package: nnet
#> 
#> Attaching package: 'epiDisplay'
#> The following object is masked from 'package:lattice':
#> 
#>     dotplot
library(mice)
#> 
#> Attaching package: 'mice'
#> The following objects are masked from 'package:epiDisplay':
#> 
#>     cc, cci
#> The following object is masked from 'package:stats':
#> 
#>     filter
#> The following objects are masked from 'package:base':
#> 
#>     cbind, rbind
library(reprex)
df3 <- data.frame(
  dem = c(0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
          1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,
          0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,
          0,0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,
          0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,0,0,
          0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,
          0,0,1,1,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,
          0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
          0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0),
  age2 = c(7.8,7.9,8.4,9.6,7.8,7.9,9.7,8.4,8.5,
           7.7,8.9,8,8.1,9.9,7.6,7.7,8.6,9.4,7.5,7,8,8.8,
           8.1,8.9,8.5,8.2,9,8.1,5.1,7.5,7.3,8.3,7.9,8,8.1,9.3,
           8,6.3,9.2,8.3,8.3,7.4,7.9,8,9.1,8,6.2,8.7,9,8.9,
           9,8.3,9,8.7,8.6,8.9,6.5,8.8,7.7,6.5,9,5.5,4.9,7.1,
           8.6,8,8.9,8.2,7.9,6.8,7.5,7,8.3,8.5,8.5,7.3,8.6,
           8.7,9,7.9,8.8,8.1,8.7,9,8.8,8.8,8,8,8.9,7.9,6.8,
           9.3,9.1,8.4,7,8.5,6.3,8.9,9.2,8.5,7.9,7.5,9.3,8.8,
           9.2,8.3,8.7,8,8.5,8.5,8.1,7.3,8.2,7.8,8.7,8.5,7.9,
           7.1,7.5,7.8,6.6,8.5,8.9,9,8.1,9.1,8.6,8.5,8.6,7.2,
           6.8,6.7,7.9,8.7,7.7,8.4,6.5,6.7,7.3,7.2,8.9,8.5,8.4,
           8.7,8.2,7.5,5.9,8.9,8.8,8.6,6.3,8.2,9.2,8.1,9.2,8.7,
           9.1,7.8,8.7,7.5,8.1,8,8.8,7.8,8.1,8.5,9.2,7.9,8.6,
           6.5,9.7,8.4,8.7,8.3,7.4,7.9,8.3,7.2,8.4,8.4,7.7,
           8.2,9.4,8.6,7.2,8,8.2,7.6,6.5,7.8,9.1,8.9,7.4,9.2,
           7.8,6,7.7,8.6,8.3),
  gender = as.factor(c("Male","Female",
                       "Male","Female","Female","Female","Female","Male",
                       "Male","Female","Male","Male","Male","Female",
                       "Male","Female","Male","Female","Female","Female",
                       "Male","Male","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Female",
                       "Female","Male","Female","Female","Male","Female",
                       "Male","Male","Male","Male","Female","Male",
                       "Female","Male","Male","Male","Male","Female",
                       "Male","Male","Male","Female","Female","Male",
                       "Female","Male","Female","Male","Male","Female",
                       "Male","Male","Female","Female","Male","Female",
                       "Male","Female","Female","Female","Male","Male",
                       "Female","Male","Male","Female","Male","Female",
                       "Male","Female","Female","Male","Female",
                       "Female","Female","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Female",
                       "Female","Male","Female","Female","Female","Male",
                       "Female","Female","Female","Female","Female",
                       "Female","Female","Male","Female","Male","Female",
                       "Female","Female","Female","Female","Male","Male",
                       "Female","Female","Male","Male","Male","Female",
                       "Female","Male","Male","Female","Female",
                       "Male","Female","Male","Male","Female","Male",
                       "Female","Male","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Male","Male",
                       "Female","Male","Male","Male","Female","Female",
                       "Male","Female","Female","Female","Female",
                       "Female","Female","Female","Male","Female","Female",
                       "Female","Female","Female","Male","Female",
                       "Female","Female","Female","Male","Female","Female",
                       "Male","Female","Female","Female","Female",
                       "Male","Male","Female","Male","Female","Female",
                       "Female","Male","Female","Male","Male","Female",
                       "Female","Male","Male","Female","Female","Male",
                       "Male")),
  ethnic = as.factor(c("White","White",
                       "Black","White","Black","White","Black","White",
                       "White","S.Asian",NA,"White","White","White",
                       "White","Other","White","White","Black","White",
                       "White","S.Asian","Black","White","Black","White",
                       "White",NA,"White","Black","White","White",
                       "White","Black","White","Other","Black",NA,"White",
                       "White","White","Black","White","White","Black",
                       "White","S.Asian","Other","White","Black",
                       "White","White",NA,"White","Black","White","White",
                       "White",NA,"S.Asian","White","White",NA,"White",
                       "Black","Other","Black","Black","White","White",
                       "White","S.Asian","White","Black",NA,"Black",
                       "S.Asian","Black",NA,"S.Asian","S.Asian","White",
                       "S.Asian","White",NA,"White","White","White",
                       "White","White","S.Asian","White","White",
                       "S.Asian","White","S.Asian","White","White","White",
                       "Black","White","S.Asian","White","Black","Black",
                       "White","White","S.Asian","White","Black",NA,
                       "White","Black","Black","S.Asian","White",
                       "White","Other","White","S.Asian","White","White",
                       "S.Asian","White","Black","S.Asian","White","White",
                       "White",NA,"White","White","S.Asian","Other",
                       "White","Black","Other","Black","White","White",
                       "White","White","White","White","White","Black",
                       "White","White","White","Other","S.Asian",
                       "Black","White","S.Asian","White","Other","White",
                       "S.Asian","S.Asian","White","Black","Black",
                       "White","White","White","White","Black","Black",
                       "White","Black","White","White","Black","White",
                       "Black","Black","Black","Other","White","S.Asian",
                       "White","White","White","White","Other","Black",
                       "Black","White","Other","White","Black","White",
                       "Black","White","S.Asian","White","White",
                       "White","White")),
  underwt = as.factor(c("Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",NA,
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        NA,"Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",NA,
                        "Never","Yes","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Post-Dem",NA,"Yes","Yes","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Yes","Never","Never",NA,
                        NA,"Never","Never","Never","Never",NA,"Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never")),
  hypert = as.factor(c("Post-Dem","Normal",
                       "Yes","Yes","Post-Dem","Normal","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Post-Dem","Yes","Yes",
                       "Yes","Yes","Post-Dem","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Normal","Post-Dem","Normal","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Post-Dem","Normal","Yes","Post-Dem","Normal","Normal",
                       "Normal","Yes","Yes","Normal","Yes","Yes","Yes",
                       "Normal","Normal","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Post-Dem","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Normal","Post-Dem","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Normal","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Post-Dem","Normal","Yes",
                       "Post-Dem","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Post-Dem","Normal","Yes",
                       "Normal","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Normal","Post-Dem","Post-Dem",
                       "Yes","Yes","Yes","Normal","Yes","Yes","Yes",
                       "Yes","Normal","Yes","Yes","Normal","Yes",
                       "Post-Dem","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Post-Dem","Yes",NA,"Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Post-Dem","Yes","Yes","Yes",
                       "Yes","Yes","Normal","Normal","Yes","Normal")),
  diab = as.factor(c("Normal","Normal",
                     "Yes","Normal","Post-Dem","Normal","Normal","Yes",
                     "Yes","Yes","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal","Normal",
                     "Post-Dem","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal","Normal",
                     "Normal","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Yes","Yes","Yes","Yes","Yes",
                     "Yes","Normal","Yes","Normal","Normal","Post-Dem",
                     "Yes","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Yes","Yes","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Yes","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Yes","Post-Dem",
                     "Normal","Normal","Yes","Yes","Normal","Yes",
                     "Post-Dem","Normal","Yes","Normal","Normal","Yes",
                     "Yes","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Post-Dem","Yes",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Normal","Post-Dem","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal",
                     "Post-Dem","Normal","Normal","Yes","Normal","Normal",
                     "Normal","Yes","Normal","Normal",NA,"Yes",
                     "Normal","Normal","Normal","Normal","Yes","Normal",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Post-Dem","Yes","Yes","Normal","Yes","Normal","Yes",
                     "Normal","Yes","Yes","Yes","Normal","Yes",
                     "Post-Dem","Normal","Normal","Normal","Normal",
                     "Yes","Normal","Yes","Yes","Normal","Normal",
                     "Normal","Normal")),
  depress = as.factor(c("Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Yes","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal",NA,"Normal","Normal","Normal",
                        "Normal","Normal","Yes","Post-Dem","Normal",
                        "Normal","Normal","Yes","Normal","Normal","Normal",
                        "Normal","Normal","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Yes",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes","Yes",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes",
                        "Normal","Normal","Yes","Yes","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Yes","Normal","Yes","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Yes","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal")),
  deaf = as.factor(c("Normal","Normal",
                     "Normal","Yes","Post-Dem","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Post-Dem","Normal",
                     "Normal","Normal","Normal","Normal","Post-Dem",
                     "Normal","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Post-Dem","Normal","Normal","Post-Dem","Yes",
                     "Yes","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Yes",
                     "Yes","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Yes","Normal",
                     "Post-Dem","Normal","Normal","Normal","Post-Dem",
                     "Normal","Normal","Normal","Yes","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes","Normal",
                     "Post-Dem","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Yes","Post-Dem",
                     "Yes","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Post-Dem","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes","Normal")),
  smoke_grp = as.factor(c("Current smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Current smoker","Never smoker","Ex-smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Current smoker",
                          "Current smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Never smoker","Current smoker","Current smoker",
                          "Ex-smoker","Ex-smoker","Never smoker","Ex-smoker",
                          "Ex-smoker","Ex-smoker","Ex-smoker","Ex-smoker",
                          "Current smoker","Current smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Current smoker","Never smoker","Ex-smoker","Never smoker",
                          "Ex-smoker","Ex-smoker","Current smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",NA,
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Current smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Ex-smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Ex-smoker","Current smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker","Ex-smoker",
                          "Ex-smoker","Never smoker",NA,"Current smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Ex-smoker","Ex-smoker",NA,
                          "Current smoker","Never smoker","Current smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker",NA,"Never smoker","Ex-smoker",
                          "Never smoker","Current smoker","Ex-smoker",
                          "Ex-smoker","Never smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Ex-smoker","Ex-smoker",
                          "Current smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker")),
  head_inj = as.factor(c("Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Post-Dem","Normal","Yes","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Yes","Normal","Normal","Normal","Normal",
                         "Yes","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Yes","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Yes","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Post-Dem","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Yes","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal")),
  imd_decile = as.factor(c("1","5","3","1","2",
                           "4","3","2","1","3",NA,"1","2","2","5",NA,
                           "3","3","1","1","6","7","3","2","2","3",
                           "2","3","2","2","3","1","3","2","1","1","1",
                           "1","1","1","3","2","3",NA,"3","3","4","2",
                           "2","2","4","5","3","3","2","2","2","3",
                           NA,"3","1","3","4","3","3","2","3","2","5",
                           "9","1","4","1","1","2","4","3","3","5","2",
                           "2","3","5","3","1","3","1","1","2","2",
                           "2","1",NA,"5","3","4","2","5","2","3",NA,
                           "2","1","3","3","3","3","5","2","2","2","3",
                           "1","2","3","4","5","4","2","1","3","6",
                           "4","1","4","2","1","3","2","2","1","3","2",
                           "4","4","1","3","3","2","1","7","4","3","3",
                           "4","2","2","3","3","3","3","3","2","1",
                           NA,"2",NA,"2","3","1","2","2","4","1","2",
                           "8","3","3","2","2","2","3","1","3","2","2",
                           "1","2","2","2","7","1","2","5","3","2",
                           "2","2","3","5","3","3","4","2","2","1","4",
                           "9","3"))
)

#logistic regression controlling for age and gender
for(i in 1:length(varlist1)){
  print(varlist1[i])
  df3$x <- df3[, varlist1[i]]
  mod2 <- glm(dem ~ x + age2 + gender, family=binomial, data=df3)
  summary(mod2)

  if(i<=2){    # age and gender - only need one parameter to output
    n <- length(mod2$coefficients)-2
    OR <- format(round(exp(mod2$coefficients), 2), nsmall=2)[2:n]
    ci <- as.matrix(format(round(exp(confint(mod2)), 2), nsmall=2)[2:n,])
  }

  if(i>=3){
    n <- length(mod2$coefficients)
    n2 <- n-2
    OR <- format(round(exp(mod2$coefficients), 2), nsmall=2)[2:n2]
    ci <- as.matrix(format(round(exp(confint(mod2)), 2), nsmall=2)[2:n2,])
  }

  if(i<=2){   # Age and gender only have one level each and R outputs this differently compared to multi-level vars
    ci1 <- ci[1]
    ci2 <- ci[2]
  }

  if(i>=3){
    ci1 <- ci[,1]
    ci2 <- ci[,2]
  }

  out <- paste0(OR, " (", ci1, ", ", ci2, ")")

  if(i==1){
    out2 <- out
  }
  if(i>1){
    out2 <- append(out2, out)
  }

  df3$x <- NULL
  rm(n); rm(n2); rm(OR); rm(ci); rm(ci1); rm(ci2)
}
#> [1] "age2"
#> Waiting for profiling to be done...
#> Warning in rm(n2): object 'n2' not found
#> [1] "gender"
#> Waiting for profiling to be done...
#> Warning in rm(n2): object 'n2' not found
#> [1] "ethnic"
#> Waiting for profiling to be done...
#> [1] "imd_decile"
#> Waiting for profiling to be done...
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
#> [1] "underwt"
#> Waiting for profiling to be done...
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
#> [1] "hypert"
#> Waiting for profiling to be done...
#> [1] "diab"
#> Waiting for profiling to be done...
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
#> [1] "depress"
#> Waiting for profiling to be done...
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
#> [1] "deaf"
#> Waiting for profiling to be done...
#> [1] "smoke_grp"
#> Waiting for profiling to be done...
#> [1] "head_inj"
#> Waiting for profiling to be done...

out3 <- c(out2[1], "1", out2[2], "1", out2[3:5], "1", out2[6:14], "1", out2[15:15], "1", 
          out2[17:18], "1", out2[19:20], "1", out2[21:22], "1", out2[23:24], "1", out2[25:26], "1", out2[27:28])

adj_mods1 <- out3
adj_mods1
#>  [1] "0.92 ( 0.62,  1.40)"                 "1"                                  
#>  [3] "0.55 ( 0.25,  1.14)"                 "1"                                  
#>  [5] "0.31 ( 0.02,  1.98)"                 "1.11 ( 0.33,  3.56)"                
#>  [7] "0.90 ( 0.39,  2.18)"                 "1"                                  
#>  [9] "0.55 ( 2.200000e-01,  1.410000e+00)" "0.37 ( 1.300000e-01,  1.010000e+00)"
#> [11] "0.58 ( 1.400000e-01,  2.070000e+00)" "0.19 ( 1.000000e-02,  1.180000e+00)"
#> [13] "0.00 (           NA, 4.060425e+108)" "0.00 (           NA,  1.243292e+71)"
#> [15] "0.00 (           NA, 2.085873e+205)" "0.00 (           NA, 4.866643e+107)"
#> [17] "0.00 (          NA, 2.040734e+72)"   "1"                                  
#> [19] "3.71 (4.300000e-01, 3.254000e+01)"   "1"                                  
#> [21] "0.73 ( 0.28,  2.06)"                 "0.00 (          NA, 2.536329e+25)"  
#> [23] "1"                                   "2.44 (1.150000e+00, 5.170000e+00)"  
#> [25] "0.00 (          NA, 2.390833e+72)"   "1"                                  
#> [27] "2.70 (1.060000e+00, 6.650000e+00)"   "0.63 ( 0.03,  3.80)"                
#> [29] "1"                                   "3.02 ( 1.18,  7.52)"                
#> [31] "0.78 ( 0.24,  2.59)"                 "1"                                  
#> [33] "0.62 ( 0.23,  1.79)"                 "19.39 (  2.54, 404.29)"             
#> [35] "1"                                   " 4.73 (  0.82,  27.63)"             
#> [37] NA

Created on 2021-08-12 by the reprex package (v2.0.1)

stefvanbuuren commented 3 years ago

Phazha, if I paste the first few lines in a fresh R session I get

> varlist1 <- c("age2", "gender", "ethnic", "imd_decile", "underwt",
               "hypert", "diab", "depress", "deaf", "smoke_grp", "head_inj")
> 
> for(i in 1:length(varlist1)){
     print(varlist1[i])
     df3$x <- df3[, varlist1[i]]
 }
[1] "age2"
Error in df3 : object 'df3' not found

which is because you did not define df3.

Phazha commented 3 years ago

Hi Stef, apologies for the formatting, I've reproduced everything again and limited my data (matched case-control) which was originally consisted of 19,800 observations to now 199 observations at randome. I hope this is easier for you to now view. I would deeply appreciate your insight and assistance. Apologies again for previous formatting.

stefvanbuuren commented 3 years ago

Thanks. It looks like a programming error, not related to mice.

You are trying to select from a vector by a two-dimensional index, which you cannot do. If i = 1 I get

 format(round(mod1$`2.5 %`, 2), nsmall=2)
[1] "0.61" "1.30" "1.00" "0.95" "0.83"

> as.matrix(format(round(mod1$`2.5 %`, 2), nsmall=2)[2:n,])
Error in format(round(mod1$`2.5 %`, 2), nsmall = 2)[2:n, ] : 
  incorrect number of dimensions

It is easy to select the two elements by

> format(round(mod1$`2.5 %`, 2), nsmall=2)[2:n]
[1] "1.30" "1.00"

Hope this helps.

Phazha commented 3 years ago

HI Stef, When I've tried to do so, I am then unable to extract the adjusted OR and CI for the individual variables in x. I only get the OR and CI for "age2" and "gender" repeated. Would you by any chance be able to reference an example of a logistic regression with a 'mids' object, whereby I can control for age and gender, and output adjusted OR and CI's of variables of interest (seen in varlist1):

#Load packages
rm(list=ls())
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(lattice)
library(plyr)
#> ------------------------------------------------------------------------------
#> You have loaded plyr after dplyr - this is likely to cause problems.
#> If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
#> library(plyr); library(dplyr)
#> ------------------------------------------------------------------------------
#> 
#> Attaching package: 'plyr'
#> The following objects are masked from 'package:dplyr':
#> 
#>     arrange, count, desc, failwith, id, mutate, rename, summarise,
#>     summarize
library(gdata)
#> gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.
#> 
#> gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
#> 
#> Attaching package: 'gdata'
#> The following objects are masked from 'package:dplyr':
#> 
#>     combine, first, last
#> The following object is masked from 'package:stats':
#> 
#>     nobs
#> The following object is masked from 'package:utils':
#> 
#>     object.size
#> The following object is masked from 'package:base':
#> 
#>     startsWith
library(epiDisplay)
#> Loading required package: foreign
#> Loading required package: survival
#> Loading required package: MASS
#> 
#> Attaching package: 'MASS'
#> The following object is masked from 'package:dplyr':
#> 
#>     select
#> Loading required package: nnet
#> 
#> Attaching package: 'epiDisplay'
#> The following object is masked from 'package:lattice':
#> 
#>     dotplot
library(mice)
#> 
#> Attaching package: 'mice'
#> The following objects are masked from 'package:epiDisplay':
#> 
#>     cc, cci
#> The following object is masked from 'package:stats':
#> 
#>     filter
#> The following objects are masked from 'package:base':
#> 
#>     cbind, rbind
library(reprex)
df3 <- data.frame(
  dem = c(0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
          1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,
          0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,
          0,0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,
          0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,0,0,
          0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,
          0,0,1,1,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,
          0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
          0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0),
  age2 = c(7.8,7.9,8.4,9.6,7.8,7.9,9.7,8.4,8.5,
           7.7,8.9,8,8.1,9.9,7.6,7.7,8.6,9.4,7.5,7,8,8.8,
           8.1,8.9,8.5,8.2,9,8.1,5.1,7.5,7.3,8.3,7.9,8,8.1,9.3,
           8,6.3,9.2,8.3,8.3,7.4,7.9,8,9.1,8,6.2,8.7,9,8.9,
           9,8.3,9,8.7,8.6,8.9,6.5,8.8,7.7,6.5,9,5.5,4.9,7.1,
           8.6,8,8.9,8.2,7.9,6.8,7.5,7,8.3,8.5,8.5,7.3,8.6,
           8.7,9,7.9,8.8,8.1,8.7,9,8.8,8.8,8,8,8.9,7.9,6.8,
           9.3,9.1,8.4,7,8.5,6.3,8.9,9.2,8.5,7.9,7.5,9.3,8.8,
           9.2,8.3,8.7,8,8.5,8.5,8.1,7.3,8.2,7.8,8.7,8.5,7.9,
           7.1,7.5,7.8,6.6,8.5,8.9,9,8.1,9.1,8.6,8.5,8.6,7.2,
           6.8,6.7,7.9,8.7,7.7,8.4,6.5,6.7,7.3,7.2,8.9,8.5,8.4,
           8.7,8.2,7.5,5.9,8.9,8.8,8.6,6.3,8.2,9.2,8.1,9.2,8.7,
           9.1,7.8,8.7,7.5,8.1,8,8.8,7.8,8.1,8.5,9.2,7.9,8.6,
           6.5,9.7,8.4,8.7,8.3,7.4,7.9,8.3,7.2,8.4,8.4,7.7,
           8.2,9.4,8.6,7.2,8,8.2,7.6,6.5,7.8,9.1,8.9,7.4,9.2,
           7.8,6,7.7,8.6,8.3),
  gender = as.factor(c("Male","Female",
                       "Male","Female","Female","Female","Female","Male",
                       "Male","Female","Male","Male","Male","Female",
                       "Male","Female","Male","Female","Female","Female",
                       "Male","Male","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Female",
                       "Female","Male","Female","Female","Male","Female",
                       "Male","Male","Male","Male","Female","Male",
                       "Female","Male","Male","Male","Male","Female",
                       "Male","Male","Male","Female","Female","Male",
                       "Female","Male","Female","Male","Male","Female",
                       "Male","Male","Female","Female","Male","Female",
                       "Male","Female","Female","Female","Male","Male",
                       "Female","Male","Male","Female","Male","Female",
                       "Male","Female","Female","Male","Female",
                       "Female","Female","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Female",
                       "Female","Male","Female","Female","Female","Male",
                       "Female","Female","Female","Female","Female",
                       "Female","Female","Male","Female","Male","Female",
                       "Female","Female","Female","Female","Male","Male",
                       "Female","Female","Male","Male","Male","Female",
                       "Female","Male","Male","Female","Female",
                       "Male","Female","Male","Male","Female","Male",
                       "Female","Male","Male","Female","Female","Female",
                       "Female","Female","Female","Female","Male","Male",
                       "Female","Male","Male","Male","Female","Female",
                       "Male","Female","Female","Female","Female",
                       "Female","Female","Female","Male","Female","Female",
                       "Female","Female","Female","Male","Female",
                       "Female","Female","Female","Male","Female","Female",
                       "Male","Female","Female","Female","Female",
                       "Male","Male","Female","Male","Female","Female",
                       "Female","Male","Female","Male","Male","Female",
                       "Female","Male","Male","Female","Female","Male",
                       "Male")),
  ethnic = as.factor(c("White","White",
                       "Black","White","Black","White","Black","White",
                       "White","S.Asian",NA,"White","White","White",
                       "White","Other","White","White","Black","White",
                       "White","S.Asian","Black","White","Black","White",
                       "White",NA,"White","Black","White","White",
                       "White","Black","White","Other","Black",NA,"White",
                       "White","White","Black","White","White","Black",
                       "White","S.Asian","Other","White","Black",
                       "White","White",NA,"White","Black","White","White",
                       "White",NA,"S.Asian","White","White",NA,"White",
                       "Black","Other","Black","Black","White","White",
                       "White","S.Asian","White","Black",NA,"Black",
                       "S.Asian","Black",NA,"S.Asian","S.Asian","White",
                       "S.Asian","White",NA,"White","White","White",
                       "White","White","S.Asian","White","White",
                       "S.Asian","White","S.Asian","White","White","White",
                       "Black","White","S.Asian","White","Black","Black",
                       "White","White","S.Asian","White","Black",NA,
                       "White","Black","Black","S.Asian","White",
                       "White","Other","White","S.Asian","White","White",
                       "S.Asian","White","Black","S.Asian","White","White",
                       "White",NA,"White","White","S.Asian","Other",
                       "White","Black","Other","Black","White","White",
                       "White","White","White","White","White","Black",
                       "White","White","White","Other","S.Asian",
                       "Black","White","S.Asian","White","Other","White",
                       "S.Asian","S.Asian","White","Black","Black",
                       "White","White","White","White","Black","Black",
                       "White","Black","White","White","Black","White",
                       "Black","Black","Black","Other","White","S.Asian",
                       "White","White","White","White","Other","Black",
                       "Black","White","Other","White","Black","White",
                       "Black","White","S.Asian","White","White",
                       "White","White")),
  underwt = as.factor(c("Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",NA,
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        NA,"Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",NA,
                        "Never","Yes","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Post-Dem",NA,"Yes","Yes","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Yes","Never","Never",NA,
                        NA,"Never","Never","Never","Never",NA,"Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never","Never","Never",
                        "Never","Never","Never","Never")),
  hypert = as.factor(c("Post-Dem","Normal",
                       "Yes","Yes","Post-Dem","Normal","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Post-Dem","Yes","Yes",
                       "Yes","Yes","Post-Dem","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Normal","Post-Dem","Normal","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Post-Dem","Normal","Yes","Post-Dem","Normal","Normal",
                       "Normal","Yes","Yes","Normal","Yes","Yes","Yes",
                       "Normal","Normal","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Post-Dem","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Normal","Post-Dem","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Normal","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Post-Dem","Normal","Yes",
                       "Post-Dem","Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Post-Dem","Normal","Yes",
                       "Normal","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Yes","Yes","Normal","Post-Dem","Post-Dem",
                       "Yes","Yes","Yes","Normal","Yes","Yes","Yes",
                       "Yes","Normal","Yes","Yes","Normal","Yes",
                       "Post-Dem","Yes","Yes","Yes","Yes","Yes","Normal",
                       "Yes","Post-Dem","Yes",NA,"Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Yes","Yes","Yes","Yes",
                       "Yes","Yes","Yes","Post-Dem","Yes","Yes","Yes",
                       "Yes","Yes","Normal","Normal","Yes","Normal")),
  diab = as.factor(c("Normal","Normal",
                     "Yes","Normal","Post-Dem","Normal","Normal","Yes",
                     "Yes","Yes","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal","Normal",
                     "Post-Dem","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal","Normal",
                     "Normal","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Yes","Yes","Yes","Yes","Yes",
                     "Yes","Normal","Yes","Normal","Normal","Post-Dem",
                     "Yes","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Yes","Yes","Post-Dem","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Yes","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Yes","Post-Dem",
                     "Normal","Normal","Yes","Yes","Normal","Yes",
                     "Post-Dem","Normal","Yes","Normal","Normal","Yes",
                     "Yes","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Post-Dem","Yes",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Normal","Post-Dem","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal",
                     "Post-Dem","Normal","Normal","Yes","Normal","Normal",
                     "Normal","Yes","Normal","Normal",NA,"Yes",
                     "Normal","Normal","Normal","Normal","Yes","Normal",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Post-Dem","Yes","Yes","Normal","Yes","Normal","Yes",
                     "Normal","Yes","Yes","Yes","Normal","Yes",
                     "Post-Dem","Normal","Normal","Normal","Normal",
                     "Yes","Normal","Yes","Yes","Normal","Normal",
                     "Normal","Normal")),
  depress = as.factor(c("Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Yes","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal",NA,"Normal","Normal","Normal",
                        "Normal","Normal","Yes","Post-Dem","Normal",
                        "Normal","Normal","Yes","Normal","Normal","Normal",
                        "Normal","Normal","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Yes",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes","Yes",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Yes",
                        "Normal","Normal","Yes","Yes","Yes","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal",
                        "Yes","Normal","Yes","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Normal","Normal","Yes","Normal",
                        "Normal","Normal","Normal","Normal","Normal","Normal",
                        "Normal","Yes","Normal","Normal","Normal",
                        "Yes","Normal","Normal","Normal")),
  deaf = as.factor(c("Normal","Normal",
                     "Normal","Yes","Post-Dem","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Post-Dem","Normal",
                     "Normal","Normal","Normal","Normal","Post-Dem",
                     "Normal","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Post-Dem","Normal","Normal","Post-Dem","Yes",
                     "Yes","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Yes",
                     "Yes","Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Yes","Normal","Normal",
                     "Normal","Normal","Normal","Yes","Normal",
                     "Post-Dem","Normal","Normal","Normal","Post-Dem",
                     "Normal","Normal","Normal","Yes","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes","Normal",
                     "Post-Dem","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Yes","Normal","Yes","Post-Dem",
                     "Yes","Yes","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Yes","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Normal",
                     "Normal","Normal","Post-Dem","Normal","Normal",
                     "Normal","Normal","Normal","Normal","Yes","Normal")),
  smoke_grp = as.factor(c("Current smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Current smoker","Never smoker","Ex-smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Current smoker",
                          "Current smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Never smoker","Current smoker","Current smoker",
                          "Ex-smoker","Ex-smoker","Never smoker","Ex-smoker",
                          "Ex-smoker","Ex-smoker","Ex-smoker","Ex-smoker",
                          "Current smoker","Current smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Current smoker","Never smoker","Ex-smoker","Never smoker",
                          "Ex-smoker","Ex-smoker","Current smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",NA,
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Current smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Ex-smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Ex-smoker","Current smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Current smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker","Ex-smoker",
                          "Ex-smoker","Never smoker",NA,"Current smoker",
                          "Never smoker","Ex-smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Ex-smoker","Ex-smoker",NA,
                          "Current smoker","Never smoker","Current smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker",NA,"Never smoker","Ex-smoker",
                          "Never smoker","Current smoker","Ex-smoker",
                          "Ex-smoker","Never smoker","Never smoker","Never smoker",
                          "Ex-smoker","Never smoker","Never smoker",
                          "Never smoker","Ex-smoker","Ex-smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Never smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Current smoker","Never smoker","Ex-smoker","Ex-smoker",
                          "Current smoker","Never smoker","Ex-smoker",
                          "Never smoker","Never smoker","Never smoker",
                          "Never smoker","Current smoker")),
  head_inj = as.factor(c("Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Post-Dem","Normal","Yes","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Yes","Normal","Normal","Normal","Normal",
                         "Yes","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Yes","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Yes","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Post-Dem",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Post-Dem","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Yes","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal","Normal",
                         "Normal","Normal","Normal","Normal","Normal")),
  imd_decile = as.factor(c("1","5","3","1","2",
                           "4","3","2","1","3",NA,"1","2","2","5",NA,
                           "3","3","1","1","6","7","3","2","2","3",
                           "2","3","2","2","3","1","3","2","1","1","1",
                           "1","1","1","3","2","3",NA,"3","3","4","2",
                           "2","2","4","5","3","3","2","2","2","3",
                           NA,"3","1","3","4","3","3","2","3","2","5",
                           "9","1","4","1","1","2","4","3","3","5","2",
                           "2","3","5","3","1","3","1","1","2","2",
                           "2","1",NA,"5","3","4","2","5","2","3",NA,
                           "2","1","3","3","3","3","5","2","2","2","3",
                           "1","2","3","4","5","4","2","1","3","6",
                           "4","1","4","2","1","3","2","2","1","3","2",
                           "4","4","1","3","3","2","1","7","4","3","3",
                           "4","2","2","3","3","3","3","3","2","1",
                           NA,"2",NA,"2","3","1","2","2","4","1","2",
                           "8","3","3","2","2","2","3","1","3","2","2",
                           "1","2","2","2","7","1","2","5","3","2",
                           "2","2","3","5","3","3","4","2","2","1","4",
                           "9","3"))
)

#add combined variables in x
varlist1 <- c("age2", "gender", "ethnic", "imd_decile", "underwt",
              "hypert", "diab", "depress", "deaf", "smoke_grp", "head_inj")

for(i in 1:length(varlist1)){
  print(varlist1[i])
  df3$x <- df3[, varlist1[i]]
}
#> [1] "age2"
#> [1] "gender"
#> [1] "ethnic"
#> [1] "imd_decile"
#> [1] "underwt"
#> [1] "hypert"
#> [1] "diab"
#> [1] "depress"
#> [1] "deaf"
#> [1] "smoke_grp"
#> [1] "head_inj"

#Create imputed datasets
df4 <- mice(df3, m = 5, seed = 500)
#> 
#>  iter imp variable
#>   1   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   1   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   2   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   3   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   4   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   1  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   2  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   3  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   4  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#>   5   5  ethnic  underwt  hypert  diab  depress  smoke_grp  imd_decile
#> Warning: Number of logged events: 1
summary(df4)
#> Class: mids
#> Number of multiple imputations:  5 
#> Imputation methods:
#>        dem       age2     gender     ethnic    underwt     hypert       diab 
#>         ""         ""         ""  "polyreg"  "polyreg"  "polyreg"  "polyreg" 
#>    depress       deaf  smoke_grp   head_inj imd_decile          x 
#>  "polyreg"         ""  "polyreg"         ""  "polyreg"         "" 
#> PredictorMatrix:
#>         dem age2 gender ethnic underwt hypert diab depress deaf smoke_grp
#> dem       0    1      1      1       1      1    1       1    1         1
#> age2      1    0      1      1       1      1    1       1    1         1
#> gender    1    1      0      1       1      1    1       1    1         1
#> ethnic    1    1      1      0       1      1    1       1    1         1
#> underwt   1    1      1      1       0      1    1       1    1         1
#> hypert    1    1      1      1       1      0    1       1    1         1
#>         head_inj imd_decile x
#> dem            1          1 0
#> age2           1          1 0
#> gender         1          1 0
#> ethnic         1          1 0
#> underwt        1          1 0
#> hypert         1          1 0
#> Number of logged events:  1 
#>   it im dep      meth out
#> 1  0  0     collinear   x

#adjusted for age and gender
model1 <- with(df4, glm(dem ~ x + age2 + gender))
mod1 <- summary(pool(model1), exponentiate = TRUE, conf.int =TRUE)

for(i in 1:length(varlist1)){
  print(varlist1[i])
  if(i<=2){    # age and gender - only need one parameter to output
    n <- length(mod1$estimate)-2
    OR <- format(round(mod1$estimate, 2), nsmall=2)[2:n]
    ci1 <- as.matrix(format(round(mod1$`2.5 %`, 2), nsmall=2)[2:n])
    ci2 <- as.matrix(format(round(mod1$`97.5 %`, 2), nsmall=2)[2:n])
  }

  if(i>=3){
    n <- length(mod1$estimate)
    n2 <- n-2
    OR <- format(round(mod1$estimate, 2), nsmall=2)[2:n2]
    ci1 <- as.matrix(format(round(mod1$`2.5 %`, 2), nsmall=2)[2:n2])
    ci2 <- as.matrix(format(round(mod1$`97.5 %`, 2), nsmall=2)[2:n2])
  }

  if(i<=2){   # Age and gender only have one level each and R outputs this differently compared to multi-level vars
    ci1 <- ci1[1]
    ci2 <- ci2[2]
  }

  if(i>=3){
    ci1 <- ci1[1]
    ci2 <- ci2[2]
  }

  out <- paste0(OR, " (", ci1, ", ", ci2, ")")

  if(i==1){
    out2 <- out
  }
  if(i>1){
    out2 <- append(out2, out)
  }
}  
#> [1] "age2"
#> [1] "gender"
#> [1] "ethnic"
#> [1] "imd_decile"
#> [1] "underwt"
#> [1] "hypert"
#> [1] "diab"
#> [1] "depress"
#> [1] "deaf"
#> [1] "smoke_grp"
#> [1] "head_inj"

out3 <- c(out2[1], "1", out2[2], "1", out2[3:5], "1", out2[6:14], "1", out2[15:16], "1", out2[17:18], 
          "1", out2[19:20], "1", out2[21:22], "1", out2[23:24], "1", out2[25:26], "1", out2[27:28])   
out3
#>  [1] "1.87 (1.30, 1.91)" "1"                 "1.38 (1.30, 1.91)"
#>  [4] "1"                 "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)"
#>  [7] "1.87 (1.30, 1.91)" "1"                 "1.38 (1.30, 1.91)"
#> [10] "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)" "1.87 (1.30, 1.91)"
#> [13] "1.38 (1.30, 1.91)" "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)"
#> [16] "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)" "1"                
#> [19] "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)" "1"                
#> [22] "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)" "1"                
#> [25] "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)" "1"                
#> [28] "1.87 (1.30, 1.91)" "1.38 (1.30, 1.91)" "1"                
#> [31] NA                  NA                  "1"                
#> [34] NA                  NA                  "1"                
#> [37] NA                  NA

Created on 2021-08-12 by the reprex package (v2.0.1)