2016-07-19 40 views
0

Beginnend mit R (3.3.1 64bit unter Windows) fand ich heraus, dass mean() zu viele Nachkommastellen liefert, also habe ich rund (x, 1) verwendet, um diese zu trimmen. Während das für kleinere Zahlen funktioniert, werden etwas größere Zahlen in einem seltsamen Format ausgegeben, das nicht den Rundungsregeln (IMHO) folgt: Ich sehe eine Ausgabe von 1.330710e+04. Offensichtlich sollte diese Nummer 13307.1 sein; Im gezeigten Format werden tatsächlich zwei Nachkommastellen angezeigt. Gibt es eine Möglichkeit, eine schönere Formatierung zu erhalten? Habe ich einen Fehler gemacht?Format von abgerundeten großen Zahlen in R

+3

versuchen 'Optionen (Ziffern = 10)' –

+0

Die docs sagen, dass der Standard ist '7', aber wenn ich es zu' ändern 7' die Ausgabe korrekt ist (bei Verwendung von interaktiven 'print()'), ebenfalls. Es scheint, dass "Ziffern" sogar die Nachkommastellen "round()" zurückgibt. Gibt es dazu eine präzise Dokumentation? –

Antwort

1
> format(round(345678998766.01)) 
[1] "3.45679e+11" 

> format(round(345678998766.01), digits = 10) 
[1] "345678998766" 

> format(round(mean(c(345678998766.01, 345678998766.01)))) 
[1] "3.45679e+11" 

> format(round(mean(c(345678998766.01, 345678998766.01))), digits = 10) 
[1] "345678998766" 
+0

Eine verwandte Frage: Welche Funktion wird von R für implizite Ausgabe verwendet (d. H .: Wenn ich '1 + 2' eingeben)? 'print',' format' oder etwas anderes? –