Closed Phazha closed 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
.
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.
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.
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)
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.
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]:
Created on 2021-08-12 by the reprex package (v2.0.1)