我想将任何数字除以6
仍然有一个整数。那么如何R
将数字转换为最接近的可整除数。
例如在这种情况下607
应该转换为606
。
这里有三种方法
foo_Gregor = function(N, n){
return(round(N / n) * n)
}
foo_HubertL = function(N, n){
return(n*((N+n/2) %/% n))
}
foo_db = function(N, n){
t1 = N %% n
if (t1 < n/2){
return(N - t1)
} else {
return(N + n - t1)
}
}
var_db = sapply(1:10000, function(i) foo_db(N = i, n = 6))
var_Gregor = sapply(1:10000, function(i) foo_db(N = i, n = 6))
var_HubertL = sapply(1:10000, function(i) foo_db(N = i, n = 6))
identical(var_db, var_Gregor)
#[1] TRUE
identical(var_HubertL, var_Gregor)
#[1] TRUE
foo_Gregor
可能是最好的,因为它的简单性和使用floor
或修改它的能力ceiling
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句