R/impute_from_regression.R

#'Impute missing values using simple regression
#' 
#' This function uses simple linear regression to predict missing values
#' @keywords missing
#' @param x a dataframe object or matrix
#' @param iv a list object used to predict NA values
#' @param dv a list object containing NA values
#' @import dplyr
#' @export
#' @examples 
#' impute_s_regression()

##function to impute the mean
impute_s_regression = function(x, iv = NULL, dv = NULL) {
  
  ##filter out missing values
  ##run regression
  
  nomiss = x %>% filter(!is.na(dv))
  modelfit = lm(dv ~ iv, data = nomiss)
  
  ##predict missing values
  output = x %>%
    mutate(predicted = predict(modelfit, .)) %>%
    
    ##overwrite missing values
    mutate(dv = ifelse(is.na(dv), predicted, dv))
  
  return(output$dv)
}

#document()
npm27/domo documentation built on July 2, 2019, 11:09 p.m.