Round
位于 base
包(package)。 说明
ceiling
采用单个数字参数 x
并返回一个数字向量,其中包含不小于 x
的相应元素的最小整数。
floor
采用单个数字参数 x
并返回一个数字向量,其中包含不大于 x
的相应元素的最大整数。
trunc
采用单个数字参数 x
并返回一个数字向量,其中包含通过将 x
中的值向 0
截断而形成的整数。
round
将其第一个参数中的值四舍五入到指定的小数位数(默认为 0)。四舍五入 5 时,请参阅有关 “round to even” 的“详细信息”。
signif
将其第一个参数中的值四舍五入为指定的有效数字位数。因此,对于 numeric
x
, signif(x, dig)
与 round(x, dig - ceiling(log10(abs(x))))
相同。对于 complex
x
,情况并非如此,请参阅“详细信息”。
用法
ceiling(x)
floor(x)
trunc(x, ...)
round(x, digits = 0, ...)
signif(x, digits = 6)
参数
x |
一个数值向量。或者,对于 |
digits |
指示要使用的小数位数 ( |
... |
要传递给方法的参数。 |
细节
这些是通用函数:可以单独为它们定义方法,也可以通过 Math
组通用函数定义方法。
请注意,对于 5 的四舍五入,预计将使用 IEC 60559 标准(另请参阅“IEEE 754”)“转到偶数位”。因此 round(0.5)
是 0
且 round(-1.5)
是 -2
。但是,这取决于操作系统服务和表示错误(因为例如 0.15
未准确表示,舍入规则适用于表示的数字而不是打印的数字,因此 round(0.15, 1)
可以是 0.1
或0.2
)。
四舍五入到负位数意味着四舍五入到十的幂,因此例如round(x, digits = -2)
四舍五入到最接近的百位。
对于 signif
,digits
的识别值为 1...22
,非缺失值将四舍五入到该范围内最接近的整数。对复数进行四舍五入以保留较大部分中指定的位数。与打印不同,矢量的每个元素都是单独舍入的。
这些都是原始函数。
S4方法
这些都是(内部)S4 通用的。
ceiling
、floor
和 trunc
是 Math
组泛型的成员。作为 S4 泛型,trunc
只有一个参数。
round
和signif
是Math2
组通用的成员。
警告
计算机算术的现实情况可能会导致意想不到的结果,尤其是在floor
和ceiling
。例如,我们‘know’floor(log(x, base = 8))
为了x = 8
是1
, 但0
已被看到在R平台。通常需要使用公差。
在二进制算术中舍入到十进制数字并不简单(当digits != 0
)并且可能会令人惊讶。请注意,大多数小数都是不是可以精确地用二进制双精度表示。在R4.0.0,算法为round(x, d)
, 为了 ,已改进为措施和“to nearest even”,与早期版本相反R(或者也可以sprintf()
或者format()
基于舍入)。
例子
round(.5 + -2:4) # IEEE / IEC rounding: -2 0 0 2 2 4 4
## (this is *good* behaviour -- do *NOT* report it as bug !)
( x1 <- seq(-2, 4, by = .5) )
round(x1) #-- IEEE / IEC rounding !
x1[trunc(x1) != floor(x1)]
x1[round(x1) != floor(x1 + .5)]
(non.int <- ceiling(x1) != floor(x1))
x2 <- pi * 100^(-1:3)
round(x2, 3)
signif(x2, 3)
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
The ISO/IEC/IEEE 60559:2011 standard is available for money from https://www.iso.org.
The IEEE 754:2008 standard is more openly documented, e.g, at https://en.wikipedia.org/wiki/IEEE_754.
也可以看看
as.integer
。包round
的roundX()
对于舍入的多个版本或实现,包括一些以前的和当前的R版本(如version = "3d.C"
)。
相关用法
- R RdUtils 用于处理 Rd 文件的实用程序
- R Rhome 返回 R 主目录
- R Random 随机数生成
- R Recall 递归调用
- R Random.user 用户提供的随机数生成
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
- R warning 警告信息
- R rapply 递归地将函数应用于列表
- R basename 操作文件路径
- R with 评估数据环境中的表达式
- R formals 访问和操纵形式参数
- R icuSetCollate 按 ICU 设置整理
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Rounding of Numbers。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。