R/cor_tables.R
cor_matrix_mi.Rd
This function takes an imputationList with a vector of weights and returns a correlation matrix for all numeric variables as well as a list of descriptives that pools the results across all imputations.
cor_matrix_mi(data, weights = NULL, var_names = NULL)
Takes some code from the miceadds::micombine.cor
function,
but adapted to use weights and return in the format accepted by
report_cor_table
A dataframe with multiple imputations distinguished by a .imp
variable.
Typically the output from `mice::complete(mids, "long").
A variable within data
that gives the survey weights
A named character vector with new variable names or a tibble as provided by get_rename_tribbles()
for variables. If NULL, then the variables are not renamed. If names are provided, only the variables included here are retained.
This is most helpful when the results are passed to some print function, such as report_cor_table()
To facilitate post-processing, correlations with original variable
names are returned in the tests
element.
A correlation matrix list similar to the format provided by
jtools::svycor()
with the addition of a desc
-element with means
and standard deviations of the variables.
Variables starting with . are dropped, as these are likely to be .imp and .id from mice. If you want correlations for such variables, rename them.
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(mice)
#>
#> Attaching package: ‘mice’
#> The following object is masked from ‘package:stats’:
#>
#> filter
#> The following objects are masked from ‘package:base’:
#>
#> cbind, rbind
# Create Dataset with missing data
ess_health <- ess_health %>% sample_n(500) %>%
select(etfruit, eatveg , dosprt, health, wt = pspwght)
add_missing <- function(x) {x[!rbinom(length(x), 1, .9)] <- NA; x}
ess_health <- ess_health %>% mutate(across(c(everything(), -wt), add_missing))
# Impute data
ess_health_mi <- mice(ess_health, printFlag = FALSE)
ess_health_mi <- complete(ess_health_mi, "long")
cor_matrix <- cor_matrix_mi(ess_health_mi, weights = wt)