如何对R中的整数进行四舍五入

如何对R中的整数进行四舍五入,r,rounding,R,Rounding,这是一个非常简单的问题,但我如何在R中对一个数字进行四舍五入,以便只显示2个有效数字 例如,326发到330发,4999发到5000发 谢谢也许这会有帮助: signif(4999,2) 5000 signif(326,2) 330 signif(326232,2) 330000 正如Jim O.所指出的,signif()和round()之间是有区别的。此外,正如Gregor所指出的,在表演方面也有所不同,这可能没有太多有用的信息,但可能很有趣: 库(微基准) 试试这个 round(333

这是一个非常简单的问题,但我如何在R中对一个数字进行四舍五入,以便只显示2个有效数字

例如,326发到330发,4999发到5000发

谢谢

也许这会有帮助:

signif(4999,2)
5000

signif(326,2)
330

signif(326232,2)
330000
正如Jim O.所指出的,
signif()
round()
之间是有区别的。此外,正如Gregor所指出的,在表演方面也有所不同,这可能没有太多有用的信息,但可能很有趣:

库(微基准)
试试这个

round(3333,-1)
round(3333,-2)

看看你得到了什么

用数字表示小数点

round(326, digits=-1)
[1] 330
这里是
signif()
round()
之间的区别。直接取自文件:

x2 <- pi * 100^(-1:3)
round(x2, 3)
signif(x2, 3)

[1]       0.031       3.142     314.159   31415.927 3141592.654
[1] 3.14e-02 3.14e+00 3.14e+02 3.14e+04 3.14e+06

这真是太好了!我从来不知道你可以用负数在“单位”级别上进行取整。在一个数字上舍入,在纳秒内发布性能基准是毫无意义的。如果你要费心去做一些基准测试,至少在一个可能产生影响的范围内做。(尽管使用这两个函数取整不太可能成为性能瓶颈。)不麻烦!当我评论你的答案时,我对你的答案投了赞成票,很好!我只是想指出,这些基准测试在发布时并不有用,希望能阻止其他人将其视为值得做或考虑的事情的例子。如果你回顾一下,你会发现在1号基准测试中,
signif
的中位时间为1ns,而
round
的中位时间为428,这意味着signif快了约40000%,荒谬的结果。通过这个更合理的例子,我们得到了一个相反方向的结果,其大小合理,
round
快了约36%。然而,关键仍然是这两个函数都非常快,很难想象其中任何一个都会成为性能瓶颈。由于这两个因素以及函数做(稍微)不同的事情的事实,基准测试可能很有趣,但我不认为它实际上有用。我已经看到了你所说的,我希望你的评论能使答案更有用,并让未来的读者有机会得到一个意见:在我看来,我支持你,这对这个案子没用,酷。我也喜欢这个答案。我甚至没有考虑性能差异。
x2 <- pi * 100^(-1:3)
round(x2, 3)
signif(x2, 3)

[1]       0.031       3.142     314.159   31415.927 3141592.654
[1] 3.14e-02 3.14e+00 3.14e+02 3.14e+04 3.14e+06