取整運算:通俗點講就是將一個小數(浮點數)轉化成整數。好比,咱們能夠將3.42轉化爲3或者4。git
有效小數:將一個小數近似爲小數位特定的小數。好比,將3.1415926轉化爲兩位有效小數,即3.14。微信
有效數字:將一個數近似爲特定有效位數的數字。好比,將23456保留兩位有效數字,即23000。app
在R中,以上操做有一組函數:函數
取整運算:
ceiling()
,floor()
,trunc()
和round()
flex有效小數:
round()
spa有效數字:
signif()
.net
下面經過一些例子來了解這些函數。3d
1. ceiling()函數
"ceiling"字面意思爲「天花板」。 ceiling()
函數返回對應數字的「天花板」值,即不小於該數字的最小整數,俗稱向上取整。好比:code
ceiling(2.8)[1] 3ceiling(-1.7)[1] -1ceiling(5.0)[1] 5
orm
2. floor()函數
floor()
函數返回對應數字的「地板」值,即不大於該數字的最大整數,俗稱向下取整。好比:
floor(2.8)[1] 2floor(-1.7)[1] -2floor(5.0)[1] 5
3. trunc()函數
trunc()
函數的特色是「向零取整」。 對於數字a, trunc(a)
將返回靠近 0
那一側的那個整數,見下圖。若是 a
爲正數, trunc(a)==floor(a)
;若是 a
爲負數, trunc(a)==ceiling(a)
。
runc(-1.7)[1] -1trunc(2.8)[1] 2trunc(5.0)[1] 5trunc(2.8) == floor(2.8)[1] TRUEtrunc(-1.7) == ceiling(-1.7)[1] TRUE
4. round()函數
對於小數點位數不少的數,當有效小數的位數肯定後,其後面多餘的數字應該捨去,只保留到有效小數最後一位。
在R中採用banker準則,即四捨六入五成雙準則,詳情見https://en.wikipedia.org/wiki/Rounding。具體規則爲:
「四舍」是指 ≤ 4捨去;
「六入」是指 ≥ 6進一位;
「五成雙」分兩種狀況:(1)當5後面有數字時,舍5進一位。(2) 當5後面沒有數字時,再分兩種狀況:(i)當5前一位爲奇數時,舍5進一位;(ii)當5前一位爲偶數時,舍5不進位。
round(2.3)[1] 2round(2.6)[1] 3round(2.50001)[1] 3round(2.5)[1] 2round(3.5)[1] 4round(5.0)[1] 5
其實 round()
函數的原型是 round(x,digits=0)
。其中參數 digits
設定小數點的位數,默認爲 0
,即小數點後零位(取整)。
咱們來看一下保留一位小數(即 digits=1
)的例子:
round(3.24, 1)[1] 3.2round(3.26, 1)[1] 3.3round(3.2500001, 1)[1] 3.3round(3.25, 1)[1] 3.2round(3.35, 1)[1] 3.4
5. signif()函數
signif()
是保留有效數字的函數,經常使用於科學計數,它的原型爲 signif(x,digits=6)
。其中參數 digits
設定有效數字的位數,默認爲 6
。
signif(3.5455562)[1] 3.54556signif(35455562)[1] 35455600signif(35455562, 7)[1] 35455560signif(-35455562, 7)[1] -35455560
R中的取整運算、有效小數和有效數字就講到這。
如如有遺漏,後期將會添加至本博客。
感謝您的閱讀!想了解更多有關R語言技巧,請關注個人微信公衆號「輝小寶同窗」,我將按期更新相關文章。
爲了方便在電腦上閱讀,文章也同步更新到相應專欄:
簡書: https://www.jianshu.com/c/0cf41526c59b
知乎:https://zhuanlan.zhihu.com/c_1028949008911400960
本文分享自微信公衆號 - R語言和Python學堂(gh_02c4f77a735e)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。