當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。