R/label_number_abs.R

Defines functions label_percent_abs label_number_abs

Documented in label_number_abs label_percent_abs

#' Label absolute values
#'
#' @param ... arguments passed to [scales::label_number()] or
#' [scales::label_percent()]
#' @param hide_below if provided, values below `hide_below` will be masked
#' (i.e. an empty string `""` will be returned)
#' @returns A "labelling" function, , i.e. a function that takes a vector and
#' returns a character vector of same length giving a label for each input
#' value.
#' @seealso [scales::label_number()], [scales::label_percent()]
#' @export
#' @examples
#' x <- c(-0.2, -.05, 0, .07, .25, .66)
#'
#' scales::label_number()(x)
#' label_number_abs()(x)
#'
#' scales::label_percent()(x)
#' label_percent_abs()(x)
#' label_percent_abs(hide_below = .1)(x)
label_number_abs <- function(..., hide_below = NULL) {
  function(x) {
    res <- scales::label_number(...)(abs(x))
    if (!is.null(hide_below)) {
      res[abs(x) < hide_below] <- ""
    }
    res
  }
}

#' @rdname label_number_abs
#' @export
label_percent_abs <- function(..., hide_below = NULL) {
  function(x) {
    res <- scales::label_percent(...)(abs(x))
    if (!is.null(hide_below)) {
      res[abs(x) < hide_below] <- ""
    }
    res
  }
}

Try the ggstats package in your browser

Any scripts or data that you put into this service are public.

ggstats documentation built on June 22, 2024, 12:21 p.m.