R/mnrva_noise_matrix.R

Defines functions mnrva_noise_matrix

Documented in mnrva_noise_matrix

#' Add noise or create noise matrix
#'
#' @param x matrix
#' @param learning_rate numeric from 0 to 1, determining probability that each element in the row is sampled perfectly
#' @param merge logical default is TRUE and return original matrix multiplied by noise matrix. FALSE will return only the noise matrix
#'
#' @return
#' @export
#'
#' @examples
#' 
#' mat <- mnrva_item_matrix(n_items = 5, vec_length = 10)
#' mnrva_noise_matrix(mat, learning_rate =.9, merge=TRUE)
#' mnrva_noise_matrix(mat, learning_rate =.9, merge=FALSE)
#' 
mnrva_noise_matrix <- function(x, learning_rate= .9, merge= TRUE){
  dims <- dim(x)
  noise <- matrix(sample(c(1,0), 
                         size = dims[1] * dims[2],
                         replace = TRUE, 
                         prob=c(learning_rate,1-learning_rate)),
                  nrow = dims[1],
                  ncol = dims[2])
  if (merge == FALSE) return(noise)
  if (merge == TRUE) return(x*noise)
}
CrumpLab/minerva documentation built on Oct. 30, 2019, 5:50 a.m.