用百分比格式强制零

时间:2019-09-18 20:16:42

标签: r

我想以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位数字,即使它们全为零也是如此。

1 个答案:

答案 0 :(得分:4)

您可以这样做:

AA          AA  CA
AA          AA  NY
AA          AA  MD
BB          BB  FL
BB          BB  NY
BB          CC  AZ
DD          CC  CO
DD          DD  CO
            DD  WA

scales::percent(c(1:3/12345, 0.9), accuracy = 0.0001) [1] "0.0081%" "0.0162%" "0.0243%" "90.0000%" 参数具有相当违反直觉的功能,这意味着如果您希望输出的小数位数更多,则需要使用小于1的数字(这也是默认值)。 accuracy参数中的每个小数位都代表输出中的小数位。

更深入地说明该功能。如果要输出一位小数位:

accuracy

如果想要的话,保留三个小数位:

scales::percent(c(1:3/12345, 0.9), accuracy = 0.1)

[1] "0.0%"  "0.0%"  "0.0%"  "90.0%"