R的prettyNum()函数中的数字参数是如何工作的?



在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所属的formatCprettyNum函数没有名为digits的参数。

这不会导致错误的原因是您的参数digits正通过...传递给format

。。。传递到格式的参数。

format中,参数digitsformatC中的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"

这似乎就是你想要的。

相关内容

  • 没有找到相关文章