如何在R中向上舍入0.5

时间:2016-05-05 06:40:44

标签: r

我试图通过0.5来计算数字。我的数据集如下 -

Wgt
0.160
0.522
0.174
0.765
1.246
2.893

我希望通过舍入得到的结果是

Round Wgt
0.5
1.0
0.5
1.0
1.5
3

基本上,数字的上限为0.5。请帮帮我。

3 个答案:

答案 0 :(得分:5)

只需这样做:

fast-forward

这会产生

x <- c(0.16, 0.522, 0.174, 0.765, 1.246, 2.893)
y <- x * 2
z <- ceiling(y)
z / 2

答案 1 :(得分:3)

您可以使用plyr函数试用round_any库,这样就可以完成此操作。

> library(plyr)
> x <- c(0.16, 0.522, 0.174, 0.765, 1.246, 2.893)
> round_any(x, 0.5, f=ceiling)
[1] 0.5 1.0 0.5 1.0 1.5 3.0

答案 2 :(得分:0)

无法找到任何明确的答案,但这是一个快速的问题。我创建了一个名为half_ceil的函数,它在一个值上执行了您想要的行为,然后使用sapply将其应用于向量:

half_ceil = function(x){
  whole = ceiling(x)
  if(x >= whole - .5){
        return(whole)
  }
  return(whole - .5)
}
sapply(Wgt, half_ceil)

这会将小数为.5的值舍入到下一个整数而不是向下,但是您可以将这些值保持为它们的值,只需将大于或等于符号更改为小于符号即可。