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