Dans R, les valeurs numériques apparaissent par défaut avec les décimales définies à l’origine. Si on souhaite définir un autre format avec moins de décimales, il s’agit d’utiliser la fonction format().
Dans un data frame, les données des colonnes seront stockées avec le format correspondant à la valeur ayant le plus de décimales (dans la colonne) :
data <- data.frame(v1 = c("a","b","c"), v2= c(0.5532, 0.645, 0.86))
Ainsi, pour la colonne « v2 », les données seront enregistrées avec 4 décimales (qui est le niveau le plus élevé avec la premiere valeur).
Si on souhaite définir, un format avec 1 seule décimale, il faut utiliser format() avec le parametre « digit » permettant de préciser le nombre de décimales souhaitées :
library(dplyr)
#Si on ne veut pas de decimales
data["v3] <- data([["v2"]]) %>% format(digits=0)
#Si on veut qu'1 seule decimale
data["v4] <- data([["v2"]]) %>% format(digits=1)
A savoir, si on definit un niveau de decimales plus grand que celui existant pour les données, ce sera alors le niveau de décimales des données qui sera affiché. Par exemple, nos données sont enregistrées avec 4 décimales, si on demande d’en voir 5 avec digits, le résultat ne fera apparaitre que 4 décimales (et pas 5).
data["v5] <- data([["v2"]]) %>% format(digits=5)
Si on souhaite « forcer » le nombre de décimales à faire apparaitre, il s’agit alors d’utiliser le parametre « nsmall ». Ce parametre permet de definir le nombre minimum de décimales qui doivent apparaitre. Ainsi, si on definit un nombre minimum de 5 décimales pour des données à 4 décimales, un « 0 » est alors rajouté pour faire la décimale supplémentaire.
data["v5] <- data([["v2"]]) %>% format(nsmall=5)
Pour + d’infos :