算法在R中舍入到下一个数量级

sin*_*sse 8 r

如果标题不清楚我会道歉,但我无法简洁地解释.

给定一个浓度矢量,我想将最大值四舍五入到下一个数量级(即345到1000).另外,我想将最小值舍入到较低的数量级(即3.2到1).这些浓度也可能低于1,因此例如0.034需要舍入到0.01.

有任何想法吗?

Mar*_*som 15

我不确定R,但这是一个简单的算法描述过程.

取数字的基数10对数,并在结果上应用天花板或地板.提高10的力量.完成.

你需要一个0的特殊情况,因为你不能取0的对数.


Jos*_*ien 12

这是一个简单的功能,可以完成您的工作:

log10_ceiling <- function(x) {
    10^(ceiling(log10(x)))
}

log10_ceiling(c(345, 3.2, 0.034))
# [1] 1000.0   10.0    0.1
Run Code Online (Sandbox Code Playgroud)