We are hiring ! See our job offers.
Raw File
################################################################################
#### Project: General functionality
#### Title:   Function | Small function | Apply MICE imputation
#### Author:  Tom Walker (thomas.walker@usys.ethz.ch)
#### Date:    15 July 2020
#### ---------------------------------------------------------------------------

apply_mice <- function(matrix, iter){
  # get column names
  cols <- colnames(matrix)
  colnames(matrix) <- paste0("C", 1:ncol(matrix))
  # apply mice imputation
  imp <- mice(
    matrix, 
    iter
  )
  # generate list and add each imputation round to a bin
  imp_list <- list()
  for(i in 1:iter){
    imp_list[[i]] <- as.matrix(
      complete(imp, i)
    )
  }
  # take means of these iterations
  out <- apply(
    simplify2array(imp_list), 
    1:2, 
    mean, 
    na.rm = T
  ) %>% as.data.frame
  colnames(out) <- cols
  # return
  return(out)
}
back to top