在R中,我使用prettyNum()
函数格式化一些数字,但很难获得所需的位数。帮助文档说:
小数点(格式="f"(或有效数字(格式="g"、="e"或="fg"(后所需的位数。
默认值:2表示整数,4表示实数。如果小于0,则使用默认值为6位的C。如果指定为大于50,则50将与警告一起使用,除非format="0";f";其中它被限制为典型的324。(根据使用的操作系统和编译器,准确数字不超过15–21。这个限制只是为了防止底层C运行时出现segfault。(
对我来说,这似乎意味着prettyNum(404.5142, digits = 2)
应该给我"404.51"
,但实际上它产生了"405"
。有人能解释一下如何将其四舍五入到小数点后的固定数字(比如2(吗?我希望它也包括尾数0。
prettyNum
的帮助文件也在记录参数digits
所属的formatC
。prettyNum
函数没有名为digits
的参数。
这不会导致错误的原因是您的参数digits
正通过...
传递给format
。
。。。传递到格式的参数。
在format
中,参数digits
与formatC
中的digits
不同。它表示有效位数,而不是小数点后的位数。是的,这在文档中有点令人困惑,但这意味着例如你可以这样做:
prettyNum(404.5142, digits = 5)
#> [1] "404.51"
然而,如果你这样做,这会给你错误的数字,例如:
prettyNum(44.5142, digits = 5)
#> [1] "44.514"
因此,使用formatC
这样的东西会更安全,因为它允许
formatC(404.5142, format = "f", digits = 2)
#> [1] "404.51"
和
formatC(44.5142, format = "f", digits = 2)
#> 1] "44.51"
这似乎就是你想要的。