Risposte:
Puoi provare format o prettyNum, ma entrambe le funzioni restituiscono un vettore di caratteri. Lo userei solo per la stampa.
> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
EDIT: Come dice Michael Chirico nel commento:
Tieni presente che questi hanno l'effetto collaterale di riempire le stringhe stampate con uno spazio vuoto, ad esempio:
> prettyNum(c(123,1234),big.mark=",")
[1] " 123" "1,234"
Aggiungi trim=TRUE
a format
o preserve.width="none"
a prettyNum
per evitare ciò:
> prettyNum(c(123,1234),big.mark=",", preserve.width="none")
[1] "123" "1,234"
> format(c(123,1234),big.mark=",", trim=TRUE)
[1] "123" "1,234"
prettyNum(c(123,1234),big.mark=",")
:; dà " 123" "1,234"
. aggiungi trim=T
a format
o preserve.width="none"
per prettyNum
impedire questo.
format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)
dà "" 12,345,678.0000 "" 0,0012 "in modo da poter vedere abbastanza. cioè la formattazione dei luoghi non viene eseguita elemento per elemento. Mi ha preso così tanto volevo condividere questo.
scientific
che è nascosto nel pagliaio degli argomenti format
. Grazie!
Vedi ?format
:
> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000"
>
Le altre risposte pubblicate ovviamente funzionano, ma le ho sempre usate
library(scales)
comma_format()(1000000)
comma_format
non gestisce i numeri reali, ma ora si può fare quanto segue: scales::comma_format(digits = 12)(1000000.789)
che si traduce in quanto segue: "1,000,000.789"
.
Penso che il commento di Joe a MatthewR offra la migliore risposta e dovrebbe essere evidenziato:
A partire da settembre 2018, il scales
pacchetto (parte del Tidyverse
) fa esattamente questo:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
Il scales
pacchetto sembra funzionare molto bene con ggplot2
, consentendo un controllo preciso di come i valori numerici vengono visualizzati nei grafici e nei grafici.