这是一个非常简单的问题,但是如何在R中四舍五入以仅显示2个有效数字?
例如326发至330和4999发至5000
谢谢
答案 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)
看看你会得到什么