如何从.6(而不是.5)开始取整?
例如,round(53.51245, 4)
会给我53.5125
,但我想要53.5124
。
如何指定分隔号(即从.6开始增加值)?
答案 0 :(得分:1)
我不确定这是否与评论中链接到的帖子重复(但该帖子肯定是相关的)。据我了解,OP希望分别对值分别为>= 0.6
或< 0.6
进行向上或向下取整。 (链接的帖子指的是数字应四舍五入到的位数,这是一个不同的问题。)
针对OP的问题,以下是一个选项,我们在其中定义了自定义函数my.round
my.round <- function(x, digits = 4, val = 0.6) {
z <- x * 10^digits
z <- ifelse(signif(z - trunc(z), 1) >= val, trunc(z + 1), trunc(z))
z / 10^digits
}
然后
x <- 53.51245
my.round(x, 4)
#[1] 53.5124
x <- 53.51246
my.round(x, 4)
#[1] 53.5125
my.round
是矢量化的,所以我们可以做到
my.round(c(53.51245, 53.51246, 53.51246789), digits = 4)
#[1] 53.5124 53.5125 53.5125