如何在R中舍入整数

时间:2019-06-07 12:36:05

标签: r rounding

这是一个非常简单的问题,但是如何在R中四舍五入以仅显示2个有效数字?

例如326发至330和4999发至5000

谢谢

3 个答案:

答案 0 :(得分:8)

使用数字表示小数位。

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 :(得分:6)

也许这可以帮助:

signif(4999,2)
5000

signif(326,2)
330

signif(326232,2)
330000

正如Jim O.所指出的,signif()round()之间是有区别的。同样,在表演上也有所不同,正如格里戈尔指出的那样,这可能不是太多有用的信息,但也许有趣的是:

library(microbenchmark)
k <- sample(1:100000,1000000,replace=T)  
microbenchmark(
    round_ ={round(k, digits=-1)},
    signif_ ={signif(k,2)} 
)

Unit: milliseconds
    expr       min        lq      mean    median        uq      max neval
  round_  68.56366  70.22595  74.02643  71.99918  75.32761 109.5727   100
 signif_ 109.57957 111.86501 121.17458 114.13232 118.88837 495.0321   100

答案 2 :(得分:1)

尝试

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

看看你会得到什么