Sachez que ceux-ci ont pour effet secondaire de remplir les chaînes imprimées avec un espace vide, par exemple prettyNum(c(123,1234),big.mark=","):; donne " 123" "1,234". ajouter trim=Tà formatou preserve.width="none"à en prettyNumempêcher.
MichaelChirico
@MichaelChirico Merci pour les informations supplémentaires. Je l'ai ajouté à la réponse.
Joris Meys
Notez que si vous définissez également des chiffres pour les décimales, si vous avez un vecteur, cela peut mal tourner si les nombres sont assez différents. From help "Les vecteurs numériques sont codés avec le nombre minimum de décimales nécessaires pour afficher tous les éléments au moins aux chiffres des chiffres significatifs. Cependant, si tous les éléments ont alors des zéros à la fin, le nombre de décimales est réduit jusqu'à nsmall"
micstr
1
format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)Donne donc "" 12,345,678,0000 "" 0,0012 "pour que vous puissiez en voir suffisamment. c'est-à-dire que le formatage des lieux ne se fait pas élément par élément. M'a pris tellement envie de partager ça.
micstr
J'ai passé un certain temps à essayer de trouver scientificce qui est caché dans la botte de foin d'arguments format. Merci!
La fonction comma_format ne peut traiter que des entiers.
Ven Yao
3
Ceci est une réponse très tard, et il est peut-être vrai dans le passé qui comma_formatne gère pas les nombres réels , mais maintenant , vous pouvez faire ce qui suit: scales::comma_format(digits = 12)(1000000.789)qui donne le résultat suivant: "1,000,000.789".
steveb
2
scale :: comma (1000000) semble valoir la peine d'être mentionné.
Joe le
3
Je pense que le commentaire de Joe à MatthewR offre la meilleure réponse et devrait être souligné:
Depuis septembre 2018, le scalespackage (qui fait partie du Tidyverse) fait exactement ceci:
> library(scales)> x <-10e5> comma(x)[1]"1,000,000"
Le scalespackage semble très bien jouer avec ggplot2, permettant un contrôle précis de la façon dont les valeurs numériques sont affichées dans les graphiques et les graphiques.
Réponses:
Vous pouvez essayer format ou prettyNum, mais les deux fonctions renvoient un vecteur de caractères. Je n'utiliserais cela que pour l'impression.
EDIT: Comme le dit Michael Chirico dans le commentaire:
Sachez que ceux-ci ont pour effet secondaire de remplir les chaînes imprimées d'un espace vide, par exemple:
Ajouter
trim=TRUE
àformat
oupreserve.width="none"
àprettyNum
pour empêcher cela:la source
prettyNum(c(123,1234),big.mark=",")
:; donne" 123" "1,234"
. ajoutertrim=T
àformat
oupreserve.width="none"
à enprettyNum
empêcher.format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)
Donne donc "" 12,345,678,0000 "" 0,0012 "pour que vous puissiez en voir suffisamment. c'est-à-dire que le formatage des lieux ne se fait pas élément par élément. M'a pris tellement envie de partager ça.scientific
ce qui est caché dans la botte de foin d'argumentsformat
. Merci!Voir
?format
:la source
Les autres réponses publiées fonctionnent évidemment - mais j'ai toujours utilisé
la source
comma_format
ne gère pas les nombres réels , mais maintenant , vous pouvez faire ce qui suit:scales::comma_format(digits = 12)(1000000.789)
qui donne le résultat suivant:"1,000,000.789"
.Je pense que le commentaire de Joe à MatthewR offre la meilleure réponse et devrait être souligné:
Depuis septembre 2018, le
scales
package (qui fait partie duTidyverse
) fait exactement ceci:Le
scales
package semble très bien jouer avecggplot2
, permettant un contrôle précis de la façon dont les valeurs numériques sont affichées dans les graphiques et les graphiques.la source