365 Stimmen

Formatierung von Dezimalstellen in R

Ich habe eine Zahl, z.B. 1,128347132904321674821, die ich bei der Ausgabe auf dem Bildschirm (oder beim Schreiben in eine Datei) mit nur zwei Dezimalstellen anzeigen möchte. Wie kann man das machen?

x <- 1.128347132904321674821

EDITです:

Die Verwendung von:

options(digits=2)

Es wurde als mögliche Antwort vorgeschlagen. Gibt es eine Möglichkeit, dies in einem Skript zur einmaligen Verwendung anzugeben? Wenn ich es zu meinem Skript hinzufüge, scheint es nichts anderes zu tun, und ich bin nicht daran interessiert, jede Zahl erneut einzugeben, um sie zu formatieren (ich automatisiere einen sehr großen Bericht).

--

Antwort: round(x, digits=2)

12voto

PaulHurleyuk Punkte 7789

Wenn Sie signifikante Ziffern gegenüber festen Ziffern bevorzugen, dann ist die Vorzeichen könnte nützlich sein:

> signif(1.12345, digits = 3)
[1] 1.12
> signif(12.12345, digits = 3)
[1] 12.1
> signif(12345.12345, digits = 3)
[1] 12300

10voto

ilya Punkte 2984

Funktionen prüfen prettyNum, format

um Nullen zur Probe zu haben (z. B. 123.1240), verwenden Sie sprintf(x, fmt='%#.4g')

6voto

Chernoff Punkte 2374

Die Funktion formatC() kann verwendet werden, um eine Zahl auf zwei Dezimalstellen zu formatieren. Mit dieser Funktion werden zwei Dezimalstellen angegeben, auch wenn die resultierenden Werte Nullen am Ende enthalten.

4voto

Eldar Agalarov Punkte 4419

Ich verwende diese Variante, um den Druck von K Nachkommastellen zu erzwingen:

# format numeric value to K decimal places
formatDecimal <- function(x, k) format(round(x, k), trim=T, nsmall=k)

3voto

nullglob Punkte 6715

Beachten Sie, dass numerische Objekte in R mit doppelte Genauigkeit , was (ungefähr) 16 Dezimalstellen Genauigkeit ergibt - der Rest ist Rauschen. Ich gebe zu, dass die oben gezeigte Zahl wahrscheinlich nur ein Beispiel ist, aber sie ist 22 Stellen lang.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X