Puis-je forcer R à utiliser des nombres réguliers au lieu d'utiliser la e+10
notation de type? J'ai:
1.810032e+09
# and
4
dans le même vecteur et veulent voir:
1810032000
# and
4
Je crée une sortie pour un programme à l'ancienne et je dois écrire un fichier texte en utilisant cat
. Cela fonctionne bien jusqu'à présent, mais je ne peux tout simplement pas utiliser la e+10
notation ici.
r
number-formatting
options
scientific-notation
defaults
Matt Bannert
la source
la source
Réponses:
C'est un peu une zone grise. Vous devez vous rappeler que R invoquera toujours une méthode d'impression et ces méthodes d'impression écoutent certaines options. Y compris «scipen» - une pénalité pour affichage scientifique. De
help(options)
:Exemple:
Cela dit, je le trouve toujours fiable. La façon la plus directe est d'utiliser
sprintf()
avec une largeur explicite, par exemplesprintf("%.5f", ran2)
.la source
options("scipen"=0, "digits"=7)
(ce sont les valeurs par défaut)options("scipen"=100, "digits"=4)
en haut du code, et celui qui ne le fait pas en dessous ... avec les notes appropriées. Cela peut être déroutant pour quelqu'un qui cherche une solution rapide (et Google montre le premier comme résultat).Il peut être atteint en désactivant la notation scientifique dans R.
la source
Ma réponse préférée:
Cela donne ce que vous voulez sans avoir à fouiner dans les paramètres R.
Notez qu'il renvoie une chaîne de caractères plutôt qu'un objet numérique
la source
justified = "none"
sinon il y aura des espaces les remplissant à la même longueur.format(1e6, scientific=FALSE)
renvoie"1000000"
tandis queas.character(1e6)
renvoie"1e+06"
, il y a donc une différence entre les deux méthodes.Placez
options(scipen = 999)
votre fichier .Rprofile pour qu'il soit automatiquement exécuté par défaut . (Ne comptez pas sur le faire manuellement.)(Cela signifie quelque chose de différent des autres réponses: comment?
la source