R语言取整和四舍五入函数汇总

在数据分析时,经常需要对数字进行取整或者四舍五入。R 语言里有几个常用的相关函数:ceiling()floor()trunc()round()signif()

先看一下整体对比

函数 作用 示例 结果
ceiling 向上取整 ceiling(-2.7) -2
floor 向下取整 floor(-2.7) -3
trunc 截断小数 trunc(-2.7) -2
round 四舍五入 round(-2.7) -3
signif 有效数字 signif(-2.7, 1) -3

多来几个例子再次对比:
2.7

ceiling(2.7)      # 向上取整得到 3
## 3
floor(2.7)        # 向下取整得到 2
## 2
trunc(2.7)        # 截断小数,得到 2
## 2
round(2.7)        # 四舍五入,得到 3
## 3
signif(2.7, 1)    # 保留 1 位有效数字,得到 3
## 3

2.5

ceiling(2.5)      # 向上取整得到 3
## 3
floor(2.5)        # 向下取整得到 2
## 2
trunc(2.5)        # 截断小数,得到 2
## 2
round(2.5)        # 四舍五入,银行家舍入法,得到 2
## 2
signif(2.5, 1)    # 保留 1 位有效数字,得到 2
## 2

-2.5

ceiling(-2.5)     # 向上取整,结果是 -2(更接近 0)
## -2
floor(-2.5)       # 向下取整,结果是 -3
## -3
trunc(-2.5)       # 截断小数,得到 -2
## -2
round(-2.5)       # 四舍五入,银行家舍入法,得到 -2
## -2
signif(-2.5, 1)   # 保留 1 位有效数字,得到 -2
## -2

单独看每个函数:

1. 向上取整:ceiling(x)

ceiling() 会把数字往上取整,无论小数点后是多少。

ceiling(2.3)    
## 3
ceiling(-2.3)   
## -2

2. 向下取整:floor(x)

floor() 是往下取整,直接变成比原数小的最近整数。

floor(2.7)     
## 2
floor(-2.7)    
## -3

3. 截断小数部分:trunc(x)

trunc() 只保留整数部分,相当于朝 0 方向取整。

trunc(2.7)     
## 2
trunc(-2.7)    
## -2

4. 四舍五入:round(x, digits = 0)

round() 是最常见的四舍五入函数,可以指定保留几位小数(用 digits 参数)。

round(2.5)              
## 2
round(2.6)              
## 3
round(3.5)
## 4
round(2.345, digits=2)  
## 2.35

需要注意,R 默认用的是“银行家舍入法”,也就是 .5 时会取最接近的偶数,所以round(2.5)和round(3.5)分别得到2和4。


5. 有效数字:signif(x, digits = 6)

如果想保留有效数字而不是小数点后几位,可以用 signif()

signif(123.456, digits=2)      
## 120
signif(0.0123456, digits=2)    
## 0.012

小结

实际应用中,统一向上取整可以用 ceiling(),向下取整用 floor(),只保留整数部分则用 trunc()。最常见的四舍五入用 round(),如果需要控制有效数字位数就用 signif()。这些函数可以满足日常数据处理中的各种取整和四舍五入需求。建议把上面的代码直接粘到 Rstudio里试试,体会一下它们的区别和实际效果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容