将值汇总到R中的特定有效数字

Tar*_*ham 1 r rounding significant-digits

将值四舍五入到特定有效数字的最简单方法是什么?

像函数signif()之类的东西,但只执行向上舍入(不向下)

例如:向上舍入0.001145288到1有效数字将产生0.002

任何建议将不胜感激:)

干杯!

RHe*_*tel 5

在一个有效数字的情况下,此函数提供所需的输出:

upround1 <- function(x) {
         if (isTRUE(all.equal(x,0))) return (x)
         decs <- 10^floor(log10(abs(x)))
         ceiling(x/decs)*decs
         }
Run Code Online (Sandbox Code Playgroud)

例子:

upround1(0.001145288)
#[1] 0.002
upround1(0.0008145258)
#[1] 9e-04
upround1(11)
#[1] 20
upround1(-11)
#[1] -10
upround1(-0.023)
#[1] -0.02
Run Code Online (Sandbox Code Playgroud)