我试图通过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
。请帮帮我。
答案 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的值舍入到下一个整数而不是向下,但是您可以将这些值保持为它们的值,只需将大于或等于符号更改为小于符号即可。