This function converts large numeric values into readable abbreviated formats (e.g., 1,000 becomes "1k") with options for rounding, decimal precision, and a custom prefix. It supports numbers up to the decillion range.
Arguments
- x
A numeric value or vector to be converted into a readable format.
- digits
Number of decimal places to display. Defaults to 2.
- n_decimal
- prefix
An optional character string to prepend to the formatted number (e.g., "$"). Defaults to
NULL.- truncate
A logical value indicating whether to truncate the numbers before formatting. When
TRUE, the function usesbase::signif()to truncate the numbers to the specified number of significant digits, making the output more concise. WhenFALSE, the function usesbase::round()to round the numbers to the specified number of decimal places, preserving the original scale of the number. Defaults toFALSE.
Value
A character vector with the numbers formatted as abbreviated
strings. If prefix is provided, it prepends the formatted numbers.
Examples
# Basic usage
pretty_number(1234) # "1.23k"
#> [1] "1.23k"
pretty_number(1234567) # "1.23m"
#> [1] "1.23m"
pretty_number(1234567890) # "1.23b"
#> [1] "1.23b"
# Adjusting decimal places
pretty_number(1234, digits = 1) # "1.2k"
#> [1] "1.2k"
# Adding a prefix
pretty_number(1234, prefix = "$") # "$1.23k"
#> [1] "$1.23k"
# Without rounding
pretty_number(1250, truncate = TRUE) # "1.2k"
#> [1] "1.2k"
