# numberFormattR - Format numbers and ggplot2 axis with k, M, B

## A tiny package to format numbers

I came across this ‘problem’ in a professional setting where (especially) large numbers (> 1M) had to be presented in a neat and tidy way. Tools like Looker let you use Excel formatting options and short-code, such as `0.000,,\" M\"`

for a number in millions with three decimals.

I didn’t find a package that let me do that, other than the `sitools`

package with some exceptions, so I wrote a very tiny package that lets you do just that; add number formatting (numbers only, and ggplot2 axis).

For more information, please visit: https://github.com/mraess/numberFormattR

To install the package, simply run:

```
if (!requireNamespace("devtools", quietly = TRUE))
install.packages("devtools")
devtools::install_github('mraess/numberFormattR')
```

### Example 1 - `number_formatter()`

function

```
library(tidyverse)
library(numberFormattR)
map(c(1243,8798383), number_formatter, currency = TRUE, digits = 2) %>% unlist()
```

`## [1] "$1.2k" "$8.8M"`

`map(c(1243,8798383), number_formatter, currency = FALSE, digits = 4) %>% unlist()`

`## [1] "1.243k" "8.798M"`

### Example 2 - `suffix_formatter0()`

function

This function adds formatted number labels to ggplo2 axes. It only exists as a 0-decimal version right now.

```
library(tidyverse)
library(numberFormattR)
ggplot(data.frame(x = c("A", "B"), y = c(246090, 1e6)), aes(x, y, fill = x)) +
geom_bar(stat = "identity") +
scale_y_continuous(labels = suffix_formatter_0) +
scale_fill_manual(values = c("tomato", "steelblue"))
```

Please let me know if you have any feedback, improvments. My plan is to include mapping in the function automatically at some point and have additional versions for the `suffix_formatter`

function with more decimals, e.g. 3.123M.

I can’t claim full credit for all the functions only for putting them in a package and adding the currency functionality. For credits, please see my github page (link above).