当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R Round 数字四舍五入


R语言 Round 位于 base 包(package)。

说明

ceiling 采用单个数字参数 x 并返回一个数字向量,其中包含不小于 x 的相应元素的最小整数。

floor 采用单个数字参数 x 并返回一个数字向量,其中包含不大于 x 的相应元素的最大整数。

trunc 采用单个数字参数 x 并返回一个数字向量,其中包含通过将 x 中的值向 0 截断而形成的整数。

round 将其第一个参数中的值四舍五入到指定的小数位数(默认为 0)。四舍五入 5 时,请参阅有关 “round to even” 的“详细信息”。

signif 将其第一个参数中的值四舍五入为指定的有效数字位数。因此,对于 numeric xsignif(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

一个数值向量。或者,对于 roundsignif 来说,是一个复向量。

digits

指示要使用的小数位数 ( round ) 或有效数字 ( signif ) 的整数。对于 round ,允许负值(请参阅“详细信息”)。

...

要传递给方法的参数。

细节

这些是通用函数:可以单独为它们定义方法,也可以通过 Math 组通用函数定义方法。

请注意,对于 5 的四舍五入,预计将使用 IEC 60559 标准(另请参阅“IEEE 754”)“转到偶数位”。因此 round(0.5)0round(-1.5)-2 。但是,这取决于操作系统服务和表示错误(因为例如 0.15 未准确表示,舍入规则适用于表示的数字而不是打印的数字,因此 round(0.15, 1) 可以是 0.10.2)。

四舍五入到负位数意味着四舍五入到十的幂,因此例如round(x, digits = -2)四舍五入到最接近的百位。

对于 signifdigits 的识别值为 1...22 ,非缺失值将四舍五入到该范围内最接近的整数。对复数进行四舍五入以保留较大部分中指定的位数。与打印不同,矢量的每个元素都是单独舍入的。

这些都是原始函数。

S4方法

这些都是(内部)S4 通用的。

ceilingfloortruncMath 组泛型的成员。作为 S4 泛型,trunc 只有一个参数。

roundsignifMath2 组通用的成员。

警告

计算机算术的现实情况可能会导致意想不到的结果,尤其是在floorceiling。例如,我们‘know’floor(log(x, base = 8))为了x = 81, 但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。包roundroundX()对于舍入的多个版本或实现,包括一些以前的和当前的R版本(如version = "3d.C")。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Rounding of Numbers。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。