2010-07-26 3 views
1

Existe-t-il un moyen de modifier la mise en forme du nombre par défaut dans R afin que les numéros s'impriment d'une certaine manière sans avoir à utiliser la fonction format()? Par exemple, je voudrais avoirModifier la mise en forme du nombre par défaut dans R

> x <- 100000 
> x 
[1] 100,000 

au lieu de

> x <- 100000 
> x 
[1] 100000 

Répondre

2

Eh bien, si vous voulez enregistrer les frappes de touches, liant la fonction correspondante R pour certaines séquences de touches prédéfinies, est simple et rapide dans l'un des éditeurs de texte populaires. En dehors de cela, je suppose que vous pouvez toujours écrire une petite fonction de mise en forme pour envelopper votre expression; Ainsi par exemple:

fnx = function(x){print(formatC(x, format="d", big.mark=","), quote=F)} 

> 567 * 43245 
[1] 24519915 

> fnx(567*4325) 
[1] 2,452,275 

R a plusieurs fonctions utilitaires qui le feront. Je préfère "formatC" car il est un peu plus flexible que "format" et "prettyNum".

Dans ma fonction ci-dessus, j'ai enveloppé l'appel formatC dans un appel à «imprimer» afin de supprimer les citations (") de la sortie, que je n'aime pas (je préfère regarder plutôt que "100 000")

+0

Merci Une question: quand j'essaie de passer en grand nombre, je reçois un NA par exemple, fnx (2200000000) donne NA sur ma machine, mais fnx (2100000000 – Abiel

+1

Merci, je n'étais pas au courant de ça, voici le correctif: print (formatC (a, big.mark = ",", chiffres = 0, format = "f", largeur = 12), quote = F) Tout ce que j'ai fait est de remplacer "d" (pour l'entier) par "f" (pour float) et d'ajouter "digits = 0", donc aucune décimale n'est imprimée. llocated à l'objet est automatiquement augmenté (par rapport à l'entier). – doug

1

Je ne sais pas comment changer la valeur par défaut (en fait, je déconseillerais parce que, y compris la virgule en fait un personnage).

Vous pouvez le faire:

> prettyNum(100000, big.mark=",", scientific=FALSE) 
[1] "100,000" 
Questions connexes