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.

È stato utile?

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

https://cran.rstudio.com/web/packages/xtable/ xtable.pdf

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=",")))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top