Question

Puis-je forcer R à utiliser des nombres réguliers au lieu d'utiliser la notation de type e+10?J'ai:

1.810032e+09
# and 
4

dans le même vecteur et que vous souhaitez 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 notation e+10 ici.

Était-ce utile?

La solution

C'est un peu une zone grise.Vous devez vous rappeler que R invoquera toujours une méthode d'impression et que ces méthodes d'impression écoutent certaines options.Y compris «scipen» - une pénalité pour l'affichage scientifique.De help(options):

«scipen»: entier.Une pénalité à appliquer lors de la décision d'imprimer valeurs numériques en notation fixe ou exponentielle.Positif valorise le biais du fixe et le négatif du scientifique notation: la notation fixe sera préférée à moins qu'elle ne soit plus que "scipen" chiffres plus larges.

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 que c'est fudgeworthy.Le moyen le plus direct est d'utiliser sprintf() avec une largeur explicite, par ex.sprintf("%.5f", ran2).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top