it-swarm.com.de

R zwingen, keine Exponentialschreibweise zu verwenden (z. B. e + 10)?

Kann ich R zwingen, reguläre Zahlen zu verwenden, anstatt die e+10-artige Notation zu verwenden? Ich habe:

1.810032e+09
# and 
4

innerhalb des gleichen Vektors und möchte sehen: 

1810032000
# and
4

Ich erstelle eine Ausgabe für ein altmodisches Programm und muss eine Textdatei mit cat schreiben. Das funktioniert soweit gut, aber ich kann die e+10-Notation dort einfach nicht verwenden.

176
Matt Bannert

Dies ist ein bisschen eine graue Fläche. Sie müssen sich daran erinnern, dass R immer eine Druckmethode aufruft und diese Druckmethoden einige Optionen abhören. Einschließlich "Scipen" - eine Strafe für die wissenschaftliche Anzeige. Von help(options):

"Scipen": Ganzzahl. Eine Strafe, die bei der Druckentscheidung anzuwenden ist numerische Werte in fester oder exponentieller Schreibweise. Positiv Die Werte tendieren zu festen und negativen zu wissenschaftlichen. Notation: Feste Notation wird bevorzugt, es sei denn, es ist mehr als "Scipen" -Ziffern breiter.

Beispiel:

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

Trotzdem finde ich es immer noch fudgeworthy. Am schlimmsten ist es, sprintf() mit expliziter Breite zu verwenden.

180

Dies kann durch Deaktivieren der wissenschaftlichen Notation in R erreicht werden.

options(scipen = 999)
119
GingerJack

Meine Lieblingsantwort:

format(1810032000, scientific = FALSE)
# [1] "1810032000"

Dies gibt Ihnen das, was Sie möchten, ohne sich in den R-Einstellungen herumschlagen zu müssen.

Beachten Sie, dass es eine Zeichenfolge anstelle eines Zahlenobjekts zurückgibt

42
Danny

Fügen Sie options(scipen = 999)in Ihre .Rprofile-Datei ein , damit es standardmäßig automatisch ausgeführt wird. (Verlassen Sie sich nicht darauf, es manuell zu tun.)

(Dies sagt etwas anderes als andere Antworten: wie?

  1. Dies hält die Dinge in Ordnung, wenn Sie täglich oder monatlich zwischen mehreren Projekten und mehreren Sprachen nachdenken. Denken Sie daran, Ihre Pro-Projekt-Einstellungen einzugeben, ist fehleranfällig und nicht skalierbar. Sie können ein globales ~/.R-Profil oder ein Pro-Projekt-.R-Profil haben. Oder beides, wobei letzteres das erstere überschreibt.
  2. Wenn Sie Ihre gesamte Konfiguration in einem projektweiten oder globalen .Rprofile behalten, wird sie automatisch ausgeführt. Dies ist nützlich für z. Standardpaketladungen, Konfiguration der Daten.Tabelle, Umgebung usw. Auch wenn diese Konfiguration auf eine Seite mit Einstellungen angewendet werden kann, besteht keine Chance, dass Sie sich an diese und ihre Syntax erinnern und sie eingeben
0
smci