具有百分比格式的强制零

问题描述 投票:4回答:1

我想以百分比显示数据框功能,并保留小数点后四位:

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个回答
4
投票

您可以做:

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%"
© www.soinside.com 2019 - 2024. All rights reserved.