2.4 对数值取整
2.4.1 问题
你想要对数值取整。
2.4.2 方案
存在许多种取整的方式:向最近的整数取整,向上或向下取整或者向 0 取整。
x <- seq(-2.5, 2.5, by = 0.5)
# 向最近的整数取整, 含有 .5 的值取整到最近一个偶数。
round(x)
#> [1] -2 -2 -2 -1 0 0 0 1 2 2 2
# 向上取整
ceiling(x)
#> [1] -2 -2 -1 -1 0 0 1 1 2 2 3
# 向下取整
floor(x)
#> [1] -3 -2 -2 -1 -1 0 0 1 1 2 2
# 向 0 取整
trunc(x)
#> [1] -2 -2 -1 -1 0 0 0 1 1 2 2
也可以近似到其它小数位:
x <- c(0.001, 0.07, 1.2, 44.02, 738, 9927)
# 1 位小数近似
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/0.02) * 0.02
#> [1] 0.00 0.08 1.20 44.02 738.00 9927.00