Represent numeric value with typical dollar amount format

后端 未结 4 711
轮回少年
轮回少年 2020-12-03 06:27

I have a data frame storing the dollar amount, it looks like this

> a
  cost
1 1e+05
2 2e+05

I would like it can be shown as this

<
4条回答
  •  再見小時候
    2020-12-03 07:10

    This will get you everything except the commas:

    > sprintf("$%.2f", seq(100,100000,by=10000)/7)
     [1] "$14.29"    "$1442.86"  "$2871.43"  "$4300.00"  "$5728.57"  "$7157.14"  "$8585.71"  "$10014.29" "$11442.86" "$12871.43"
    

    Getting those is pretty complicated, as shown in these questions:

    • How can I format currency with commas in C?
    • How to format a number from 1123456789 to 1,123,456,789 in C?

    Luckily, this is implemented in the scales package:

    library('scales')
    > dollar_format()(c(100, 0.23, 1.456565, 2e3))
    ## [1] "$100.00"   "$0.23"     "$1.46"     "$2,000.00"
    > dollar_format()(c(1:10 * 10))
    ## [1] "$10"  "$20"  "$30"  "$40"  "$50"  "$60"  "$70"  "$80"  "$90"  "$100"
    > dollar(c(100, 0.23, 1.456565, 2e3))
    ## [1] "$100.00"   "$0.23"     "$1.46"     "$2,000.00"
    > dollar(c(1:10 * 10))
    ## [1] "$10"  "$20"  "$30"  "$40"  "$50"  "$60"  "$70"  "$80"  "$90"  "$100"
    > dollar(10^(1:8))
    ## [1] "$10"          "$100"         "$1,000"       "$10,000"      "$100,000"     "$1,000,000"   "$10,000,000"  "$100,000,000"
    

提交回复
热议问题