【问题标题】:Force zeros with percent formatting使用百分比格式强制归零
【发布时间】:2019-09-18 20:16:42
【问题描述】:

我想以百分比形式显示数据框功能,小数点后 4 位:

scales::percent(1:3/12345)
"0.0081%" "0.0162%" "0.0243%"

这会将每个值显示为小数点后 4 位的百分比。

但是如果我尝试例如

scales::percent(c(1:3/12345, 0.9), accuracy = 4)
[1] "0%"  "0%"  "0%"  "88%"

我丢失了前 3 个的值。我希望它们显示为

"0.0081%", "0.0162%" "0.0243%".

如何在格式化为百分比时强制使用相同的位数?我总是想要小数点右边的 4 位数字,即使它们都为零。

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以这样做:

    scales::percent(c(1:3/12345, 0.9), accuracy = 0.0001)
    
    [1] "0.0081%"  "0.0162%"  "0.0243%"  "90.0000%"
    

    accuracy 参数具有相当违反直觉的功能,这意味着如果您想要输出具有更多小数位,则需要使用小于 1 的数字(这也是默认值)。 accuracy 参数中的每个小数位都代表输出中的一个小数位。

    为了更深入地说明该功能。如果你想要一个小数点后的输出:

    scales::percent(c(1:3/12345, 0.9), accuracy = 0.1)
    
    [1] "0.0%"  "0.0%"  "0.0%"  "90.0%"
    

    如果想要保留三位小数:

    scales::percent(c(1:3/12345, 0.9), accuracy = 0.001)
    
    [1] "0.008%"  "0.016%"  "0.024%"  "90.000%"
    

    【讨论】:

      猜你喜欢
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多