R 中是否有一个函数来显示用逗号分隔的大数字?
也就是说,从 1000000到 1,000,000。
1000000
1,000,000
See ?format:
?format
> format(1e6, big.mark=",", scientific=FALSE) [1] "1,000,000" >
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:
trim=TRUE
format
preserve.width="none"
prettyNum
> 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"
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:
scales
Tidyverse
> 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.
ggplot2