#' 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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.