268 votes

Forcer R à ne pas utiliser la notation exponentielle (par exemple e +10)?

Puis-je forcer R à utiliser des nombres normaux au lieu d'utiliser "e + 10" comme notation. j'ai

 1.810032e+09
# and 
4
 

dans le même vecteur et que vous voulez voir:

 1810032000
# and
4
 

Je crée une sortie pour un programme ancien et je dois écrire un fichier texte à l'aide de chat. Cela fonctionne bien jusqu'à présent, mais je ne peux tout simplement pas utiliser la notation e + 10.

264voto

Dirk Eddelbuettel Points 134700

C'est un peu une zone grise. Vous devez vous rappeler que R sera toujours invoquer une méthode d'impression, et ces méthodes d'impression à écouter certaines options. Y compris les "scipen' -- une pénalité pour les scientifiques de l'affichage. D' help(options):

‘scipen': entier. Une pénalité sera appliquée au moment de décider d'imprimer les valeurs numériques en fixe ou en notation exponentielle. Positif les valeurs de biais vers les fixes et négative à l'égard de scientifiques notation: fixe la notation sera préféré à moins qu'il est plus que " scipen de chiffres plus large.

Exemple:

R> ran2 <- c(1.810032e+09, 4) 
R> options("scipen"=-100, "digits"=4)
R> ran2
[1] 1.81e+09 4.00e+00
R> options("scipen"=100, "digits"=4)
R> ran2
[1] 1810032000          4

Cela dit, je trouve toujours fudgeworthy. Le plus terrible façon est d'utiliser des sprintf() explicites largeur.

-16voto

Daniel Cashion Points 1

round (x, 0) fonctionnera toujours ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X