问题
你想要对数值取整。
方案
存在许多中取整的方式:向最近的整数取整、向上或向下取整、或者向0取整。
x <- seq(-2.5, 2.5, by=.5)
# Round to nearest, with .5 values rounded to even number.
round(x)
#> [1] -2 -2 -2 -1 0 0 0 1 2 2 2
# Round up
ceiling(x)
#> [1] -2 -2 -1 -1 0 0 1 1 2 2 3
# Round down
floor(x)
#> [1] -3 -2 -2 -1 -1 0 0 1 1 2 2
# Round toward zero
trunc(x)
#> [1] -2 -2 -1 -1 0 0 0 1 1 2 2
也可以取整到小数位:
x <- c(.001, .07, 1.2, 44.02, 738, 9927)
# 一位小数取整
round(x, digits=1)
#> [1] 0.0 0.1 1.2 44.0 738.0 9927.0
# 10位取整
round(x, digits=-1)
#> [1] 0 0 0 40 740 9930
# 向最近的5取整
round(x/5)*5
#> [1] 0 0 0 45 740 9925
# 取整到最近的.02
round(x/.02)*.02
#> [1] 0.00 0.08 1.20 44.02 738.00 9927.00