我总是被告知,对于数字1,2,3和4,你向下打圆,而对于5,6,7,8和9你向上打圆。那么有人可以向我解释为什么在6.5中的R中使用round
或signif
它会将其舍入到6 ??
round(6.5)
[1] 6
signif(6.5)
[1] 6
当我给出一个.5数字时,我需要将我的值向上舍入。有人可以告诉我怎么做吗?
答案 0 :(得分:1)
我这样做了:
round2 <- function(x) {
index <- gregexpr(pattern='\\.', as.character(x) ) #find the index of the dot
if ( substr(as.character(x), index[[1]]+1, index[[1]]+1 ) =='5' ) round(x+0.1) else round(x) #check if the first decimal is a 5
}
> round2(5.5)
[1] 6
> round2(255.5)
[1] 256
> round2(-55.5)
[1] -56
这似乎在任何情况下都有效。