R/missMaker.R

Defines functions missMaker

Documented in missMaker

#' Add missing values to complete observations 
#'
#'
#' @param df \code{data.frame}
#' @param var name of variable to add missings
#' @param size number of missings
#' @param seed seed 
#' @param verbose show information 
#'   
#' @details 
#' Removes a fixed number of randomly selected, observed values from a variable.
#' 
#' @return 
#' \code{data.frame}.
#'
#' @examples 
#' df <- tibble(a=1:5, b=LETTERS[1:5])
#' missMaker(df, var='b', size=1)
#' 
#' 
#' @export
missMaker <- function(df,
		var,
		size=100,
		seed=42, 
		verbose=TRUE){

	df_raw <- df 

	df <- as.data.frame(df)

	if(verbose){
		n_obs <- sum(!is.na(df[[var]]))
		n_miss <- sum(is.na(df[[var]]))
		cat("Obs. w/o missings:", n_obs, "\n")
		cat("Obs. w/ missings:", n_miss, "\n")
	}

	df_prep <- df
	df_prep[['missing']] <- as.integer(
		is.na(df_prep[[var]]))
	if(size > length(df_prep[[var]])) stop("size must be smaller than the number of observed values.")
	df_raw[[var]] <- punch_holes(
			x=df_prep[[var]], 
			size=size,
			seed=seed)

	return(df_raw)
	}
sumtxt/missEval documentation built on July 12, 2020, 12:07 a.m.