add commas into number for output

三世轮回 提交于 2020-01-30 18:26:59

问题


I'm outputting a dataframe to html via xtable. I want to add commas to numbers in a couple columns of the table. I figured before I did my own paste hack I'd check if there is a built in way to do this.


回答1:


You might want to consider transforming the column using 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"



回答2:


Huge thanks to Jonathan Chang for his answer. formatC looks to be an extremely useful function. This inspired me to read the documentation for it, wherein I found prettyNum, which turned out to be a pretty elegant solution to a similar problem I was having. Here's a minimum viable example of what I did to add commas to numbers in a data frame named enrollment.summary.

xtable(prettyNum(enrollment.summary,big.mark=","))




回答3:


You can also try using the fuction argument 'format.args'

  ## Demonstration of additional formatC() arguments.
  print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ","))

from here

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




回答4:


Here is a late answer, but you could also use scales::comma_format as follows:

library(scales)
values <- c(1000000.789, 8888.23)
comma_format(digits = 12)(values)
## [1] "1,000,000.789" "8,888.230"

For just integer values, you can just use comma:

int_vals <- c(1234, 5678)
comma(int_vals)
## [1] "1,234" "5,678"



回答5:


to format some summaries from dplyr, here is boilerplate code:

df %>%
    summarise(mu=mean(big_values),
              min=min(big_values),
              max=max(big_values)) %>%
    mutate_each(funs(prettyNum(., big.mark=",")))


来源:https://stackoverflow.com/questions/1581232/add-commas-into-number-for-output

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!