data-raw/fns/randomise.R

randomise_changes_in_fct_lvls <- function (vector_fct, prob_unchanged_dbl)
{
    labels_chr <- levels(vector_fct)
    levels_dbl <- 1:length(labels_chr)
    unchanged_lgl <- stats::runif(length(vector_fct)) > prob_unchanged_dbl
    vector_fct %>% purrr::map2_dbl(unchanged_lgl, ~{
        ifelse(.y, .x, sample(levels_dbl[levels_dbl != .x], 1))
    }) %>% factor(levels = levels_dbl, labels = labels_chr)
}
ready4-dev/specific documentation built on Oct. 13, 2023, 7:54 a.m.