R/impute_normd.R

Defines functions impute_normd

Documented in impute_normd

#' Imputes missing values from normal distribution
#'
#' @param data expression data
#' @param threshold threshold for missing values
#' @param shift down shift of normal distribution in standard deviations
#' @param width width of normal distribution in standard deviations
#' @param return should data frame be returned
#' @param save ahould data frame be saved
#' @param name name to save under
#'
#' @return
#' @export
#'
#'
impute_normd <- function(data, threshold = 0.5, shift = 1.8, width = 0.3, return = T, save = F, name) {

  data <- cm0(data, threshold = threshold)

  data1 <- data
  data[data == 0] <- NA
  data <- log2(data)


  for(i in 1:nrow(data)) {

    for(j in 1:ncol(data)) {

      if(is.na(data[i, j])) {

        data1[i, j] <- 2 ^ rnorm(1,
                                 mean = mean(na.omit(data[, j])) - shift * sd(na.omit(data[, j])),
                                 sd = width * sd(na.omit(data[, j])))

      }

    }

  }

  if(save) {
    saveThis(data1, name = name, destination = "dat")
  }

  if(return) {
    data1
  }

}
nicohuttmann/htmnanalysis documentation built on Dec. 6, 2020, 3:02 a.m.