Nothing
      #' Shuffler class for applying 'shuffling' transform
#'
#' 'Shuffling' refers to the a random sampling of a variable without
#' replacement e.g. \[A, B, C\] becoming \[B, A, C\] but not \[A, A, B\].
#' Shuffling will preserve top level metrics (e.g. mean, median, mode) but
#' removes ordinal properties i.e. correlations and auto-correlations
#'
#' @param method \[optional\] A function representing the method of re-sampling
#'   to be used.  By default uses exhaustive sampling without replacement.
#' @param keys Value(s) to be transformed.
#' @param ... Value(s) to concatenate to `keys` and transform
#'  @inheritParams Pseudonymizer 
#' @param limit integer - the minimum number of observations a variable needs to 
#' have for shuffling to be performed.  If the variable has length less than `limit`
#' values are replaced with `NA`s. 
#'   
#' @export
Shuffler <- R6Class(
  "Shuffler", list(
    #' @field limit minimum vector length to be shuffled.  If vector to be 
    #' transformed has length < limit, the data is replaced with NAs
    limit = 0,
    
    #' @description 
    #' Create new Shuffler object
    initialize = function(limit=0){
      self$set_method(sample)
      self$set_limit(limit)
    },
    
    #' @description 
    #' Update minimum vector size for shuffling
    set_limit = function(limit){
      self$limit = limit
    },
    #' @description  
    #' `r transform.desc()`
    #' 
    transform = function(keys, ...){
      keys <- c(keys, ...)
      len <- length(keys)
      if (len <= self$limit){
        return(rep(NA, len))
      }
      return(self$method(keys))
    },
    #' @description 
    #' `r serialize.desc()`
    serialize = function(){
      super$serialize(limit=self$limit)
    }
  ),
  inherit = BaseDeident
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.