R/sunique.R

Defines functions sunique

Documented in sunique

#' Sort Unique
#'
#' Indique les valeurs uniques triées.
#'
#' * `vec` doit être un vecteur.
#' * S'il y a gestion des `NA` et des `NaN`, `NaN` apparaît en premier si les deux valeurs sont présentes dans le vecteur.
#'
#' @param vec Vecteur à trier.
#' @param na.last `FALSE` fait apparaître les `NA` et `NaN` au début. `TRUE` les fait apparaître à la fin et `NA` ne les fait pas apparaître.
#' @param decreasing Par défaut FALSE. Si TRUE, valeurs en ordre décroissant.
#'
#' @return vecteur
#' @export
#' @examples
#' vec <- c(1,1,1,2,2,2,3,3,3,"a","a","b","b")
#' sunique(vec)  # sort(unique(vec))
#' sunique(vec, decreasing = TRUE)  # sort(unique(vec), decreasing = TRUE)
sunique <- function(vec, na.last = FALSE, decreasing = FALSE){
  if(is.list(vec)) stop("'vec' ne peut être de type 'list'.")

  if(decreasing){
    if(is.na(na.last)){
      return(sort(unique(vec), decreasing = T))
    } else {
      return(sort(unique(vec), decreasing = T, na.last = na.last))
    }
  } else {
    if(is.na(na.last)){
      return(sort(unique(vec)))
    } else {
      return(sort(unique(vec), na.last = na.last))
    }
  }
}
guiboucher/INESSS-inesss documentation built on April 20, 2020, 10:47 p.m.