Adicione vírgulas ao número para saída
Pergunta
Estou emitindo um DataFrame para HTML via xtable
. Quero adicionar vírgulas aos números em algumas colunas da tabela. Imaginei que antes de fazer meu próprio hack de pasta, verificaria se há uma maneira de fazer isso para fazer isso.
Solução
Você pode considerar transformar a coluna usando 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"
Outras dicas
Muito obrigado a Jonathan Chang por sua resposta. formatC
parece ser uma função extremamente útil. Isso me inspirou a ler a documentação para ele, em que encontrei prettyNum
, que acabou sendo uma solução bastante elegante para um problema semelhante que eu estava tendo. Aqui está um exemplo mínimo viável do que eu fiz para adicionar vírgulas aos números em um quadro de dados nomeado enrollment.summary
.
xtable(prettyNum(enrollment.summary,big.mark=","))
Você também pode tentar usar o argumento de combinação 'formato.args'
## Demonstration of additional formatC() arguments.
print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ","))
daqui
Aqui está uma resposta tardia, mas você também pode usar scales::comma_format
do seguinte modo:
library(scales)
values <- c(1000000.789, 8888.23)
comma_format(digits = 12)(values)
## [1] "1,000,000.789" "8,888.230"
Para apenas valores inteiros, você pode apenas usar vírgula:
int_vals <- c(1234, 5678)
comma(int_vals)
## [1] "1,234" "5,678"
para formatar alguns resumos de dplyr
, aqui está o código do Boilerplate:
df %>%
summarise(mu=mean(big_values),
min=min(big_values),
max=max(big_values)) %>%
mutate_each(funs(prettyNum(., big.mark=",")))