aggiungere le virgole nel numero per l'uscita
Domanda
Sono output di un dataframe html tramite xtable
. Voglio aggiungere virgole per i numeri in un paio di colonne della tabella. Ho pensato che prima ho fatto la mia mod pasta mi piacerebbe verificare se v'è una costruito in modo per farlo.
Soluzione
Si potrebbe prendere in considerazione la trasformazione della colonna utilizzando formatC
> formatC(1:10 * 100000, format="d", big.mark=",")
[1] "100,000" "200,000" "300,000" "400,000" "500,000" "600,000"
[7] "700,000" "800,000" "900,000" "1,000,000"
Altri suggerimenti
enorme grazie a Jonathan Chang per la sua risposta. formatC
sembra essere una funzione estremamente utile. Questo mi ha spinto a leggere la documentazione per esso, in cui ho trovato prettyNum
, che si è rivelata essere una bella soluzione elegante a un problema simile che stavo avendo. Ecco un esempio minimo vitale di quello che ho fatto per aggiungere virgole per i numeri in una cornice di dati denominato enrollment.summary
.
xtable(prettyNum(enrollment.summary,big.mark=","))
Si può anche provare a utilizzare l'argomento fuction 'format.args'
## Demonstration of additional formatC() arguments.
print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ","))
da qui
Ecco una risposta in ritardo, ma si potrebbe anche usare scales::comma_format
come segue:
library(scales)
values <- c(1000000.789, 8888.23)
comma_format(digits = 12)(values)
## [1] "1,000,000.789" "8,888.230"
Per valori interi solo, si può semplicemente utilizzare virgole:
int_vals <- c(1234, 5678)
comma(int_vals)
## [1] "1,234" "5,678"
per formattare alcuni riepiloghi da dplyr
, ecco codice standard:
df %>%
summarise(mu=mean(big_values),
min=min(big_values),
max=max(big_values)) %>%
mutate_each(funs(prettyNum(., big.mark=",")))