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