#' Format des données numériques.
#'
#' Combinaison des fonctions `format()` et `round()`.
#'
#' `x` doit être un nombre ou un vecteur `numeric`.
#'
#' Si `nsmall` n'est pas défini, prend la valeur de `digits`.
#'
#' @param x Nombre ou vecteur à formater.
#' @param digits Nombre de décimales à afficher même si le nombre se termine par des zéros.
#' @param decimal.mark Symbole pour afficher les décimales.
#' @param big.mark Indiquant les multiple de 10e3.
#' @param ... Autres arguments de la fonction [base::format()].
#'
#' @return chaine de caractères
#' @keywords internal
#' @export
#' @examples
#' formatr(1.123)
#' formatr(1.123, 4)
#' formatr(1.123, 4, decimal.mark = "&&")
#' formatr(1233.123, big.mark = "&")
#'
#' formatr("ceci est du texte") # ERREUR
formatr <- function(x, digits = 2, decimal.mark = ",", big.mark = " ", nsmall = NULL, ...){
if(is.null(nsmall)) nsmall <- digits # nsmall devient le nombre de décimale si NULL
if(!is.numeric(x)) stop("x n'est pas de type NUM.")
return(
sapply(x, function(x){ # permet d'appliquer la fonction sur une colonne ou un vecteur.
if(!is.numeric(x)){
return(x) # gérer les NA, NaN... - ne pas les transformer en "texte"
} else {
return(format(round(x, digits),
nsmall = nsmall,
decimal.mark = decimal.mark,
big.mark = big.mark,
...))
}
})
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.