Comma separator for numbers in R?

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

library(scales)    
label_comma()(1000000)

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

As of Sept 2018, the scales 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.


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"

See ?format:

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

Tags:

R