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=TRUEa formato preserve.width="none"a prettyNumper 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=Ta formato preserve.width="none"per prettyNumimpedire 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.
scientificche è 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_formatnon 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 scalespacchetto (parte del Tidyverse) fa esattamente questo:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
Il scalespacchetto sembra funzionare molto bene con ggplot2, consentendo un controllo preciso di come i valori numerici vengono visualizzati nei grafici e nei grafici.