Comma separator for numbers in R?

R

R Problem Overview


Is there a function in R to display large numbers separated with commas?

i.e., from 1000000 to 1,000,000.

R Solutions


Solution 1 - R

You can try either format or prettyNum, but both functions return a vector of characters. I'd only use that for printing.

> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"

EDIT: As Michael Chirico says in the comment:

Be aware that these have the side effect of padding the printed strings with blank space, for example:

> prettyNum(c(123,1234),big.mark=",")
[1] "  123" "1,234"

Add trim=TRUE to format or preserve.width="none" to prettyNum to prevent this:

> 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"

Solution 2 - R

See ?format:

> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000" 
>   

Solution 3 - R

The other answers posted obviously work - but I have always used

library(scales)    
label_comma()(1000000)

Solution 4 - R

I think Joe's comment to MatthewR offers the best answer and should be highlighted:

As of Sept 2018, the [scales](https://www.tidyverse.org/blog/2018/08/scales-1-0-0/ "Tidyverse: Scales 1.0.0") package (part of the Tidyverse) does exactly this:

> library(scales)

> x <- 10e5
> comma(x)

[1] "1,000,000"

The scales package appears to play very nicely with ggplot2, allowing for fine control of how numerics are displayed in plots and charts.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTekTimmyView Question on Stackoverflow
Solution 1 - RJoris MeysView Answer on Stackoverflow
Solution 2 - RDirk EddelbuettelView Answer on Stackoverflow
Solution 3 - RMatthewRView Answer on Stackoverflow
Solution 4 - RArthur SmallView Answer on Stackoverflow