klassischer Fall von etwas Leichtem in Excel und lächerlich Kompliziertem in R
Nettle
Antworten:
132
Sie können entweder Format oder PrettyNum ausprobieren, aber beide Funktionen geben einen Vektor von Zeichen zurück. Ich würde das nur zum Drucken verwenden.
Beachten Sie, dass diese den Nebeneffekt haben, dass die gedruckten Zeichenfolgen mit Leerzeichen aufgefüllt werden, zum Beispiel : prettyNum(c(123,1234),big.mark=","); gibt " 123" "1,234". hinzufügen trim=Tzu formatoder preserve.width="none"zu prettyNumzu diesem zu verhindern.
MichaelChirico
@ MichaelChirico Danke für die zusätzlichen Informationen. Ich habe es der Antwort hinzugefügt.
Joris Meys
Beachten Sie, wenn Sie auch Ziffern für Dezimalstellen einstellen. Wenn Sie einen Vektor haben, kann dies schief gehen, wenn die Zahlen sehr unterschiedlich sind. Aus der Hilfe "Numerische Vektoren werden mit der minimalen Anzahl von Dezimalstellen codiert, die erforderlich sind, um alle Elemente auf mindestens die Stellen mit signifikanten Stellen anzuzeigen. Wenn jedoch alle Elemente nachgestellte Nullen haben, wird die Anzahl der Dezimalstellen bis nsmall reduziert"
Micstr
1
So format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)ergibt sich "12.345.678.0000" "0.0012", so dass genug gesehen werden kann. Das heißt, die Formatierung der Orte erfolgt nicht Element für Element. Hat mich erwischt und wollte das teilen.
Micstr
Verbrachte einige Zeit damit, herauszufinden, scientificwas im Heuhaufen der Argumente verborgen ist format. Vielen Dank!
Die Funktion comma_format kann nur Ganzzahlen verarbeiten.
Ven Yao
3
Dies ist eine sehr späte Antwort, und es mag in der Vergangenheit so gewesen sein, dass comma_formatkeine reellen Zahlen verarbeitet wurden, aber jetzt können Sie Folgendes tun: Dies scales::comma_format(digits = 12)(1000000.789)führt zu Folgendem : "1,000,000.789".
Steveb
2
scale :: comma (1000000) scheint eine Erwähnung wert zu sein.
Joe
3
Ich denke, Joes Kommentar zu MatthewR bietet die beste Antwort und sollte hervorgehoben werden:
Ab September 2018 macht das scalesPaket (Teil des Tidyverse) genau dies:
> library(scales)> x <-10e5> comma(x)[1]"1,000,000"
Das scalesPaket scheint sehr gut zu spielen ggplot2und ermöglicht eine genaue Kontrolle darüber, wie Zahlen in Plots und Diagrammen angezeigt werden.
Antworten:
Sie können entweder Format oder PrettyNum ausprobieren, aber beide Funktionen geben einen Vektor von Zeichen zurück. Ich würde das nur zum Drucken verwenden.
EDIT: Wie Michael Chirico im Kommentar sagt:
Beachten Sie, dass diese den Nebeneffekt haben, dass die gedruckten Zeichenfolgen mit Leerzeichen aufgefüllt werden, zum Beispiel:
In
trim=TRUE
zuformat
oderpreserve.width="none"
zuprettyNum
verhindern dies:quelle
prettyNum(c(123,1234),big.mark=",")
; gibt" 123" "1,234"
. hinzufügentrim=T
zuformat
oderpreserve.width="none"
zuprettyNum
zu diesem zu verhindern.format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)
ergibt sich "12.345.678.0000" "0.0012", so dass genug gesehen werden kann. Das heißt, die Formatierung der Orte erfolgt nicht Element für Element. Hat mich erwischt und wollte das teilen.scientific
was im Heuhaufen der Argumente verborgen istformat
. Vielen Dank!Siehe
?format
:quelle
Die anderen Antworten funktionieren natürlich - aber ich habe sie immer benutzt
quelle
comma_format
keine reellen Zahlen verarbeitet wurden, aber jetzt können Sie Folgendes tun: Diesscales::comma_format(digits = 12)(1000000.789)
führt zu Folgendem :"1,000,000.789"
.Ich denke, Joes Kommentar zu MatthewR bietet die beste Antwort und sollte hervorgehoben werden:
Ab September 2018 macht das
scales
Paket (Teil desTidyverse
) genau dies:Das
scales
Paket scheint sehr gut zu spielenggplot2
und ermöglicht eine genaue Kontrolle darüber, wie Zahlen in Plots und Diagrammen angezeigt werden.quelle