經常用數據分析,有時不同的文件的小數位數不一樣,但是我們可以讓它們的位數保持一致的,下面的介紹就是設置小數位數。
使用options函數
1
|
> options(digits) |
默認為7位
1
|
> a=0.234333323 #9位> a[1] 0.2343333 |
下面開始設置下
1
|
> options(digits=3)> a=0.34434434 #8位> a[1] 0.344 |
看最大的位數
1
|
> options(digits=27)Error in options(digits = 27) : 'digits' 參數不對,可用0...22> options(digits=20)> options(digits=22)> options(digits=23)Error in options(digits = 23) : 'digits' 參數不對,可用0...22 |
從上面知道,最多是22位的,下面來實驗下。
1
|
> a = 0.111222333444555666777888999 #27位> options(digits=22)> a[1] 0.11122233344455566 |
是的,它的最大位數是22位。
補充:R語言保留小數點后幾位(末尾為0也保留)
當我們在進行一些學術論文的表格生成時,需要對我們的數據進行規范化處理。比如保留小數點后四位的操作。
大家用的最多的代碼應該就是使用 round() 函數進行保留,具體做法我們以一個數字為例:12.345678。我們想保留小數點后四位可以進行如下操作。
round
運行下述代碼,即可得到我們想要的結果:12.3456
1
|
round(12.345678, 4) |
但如果我們想要保留這個數字之后的四位:12.345006,此時使用 round(12.345006, 4) 就會得到 12.345 這個結果,那如果我們想得到 12.3450 這種類型的結果,需要如何操作呢?
這時我們就可以使用: sprintf()
sprintf
具體代碼如下所示,代碼的輸出結果就是:12.3450
1
|
sprintf( "%0.4f" , 12.345006) |
上述代碼中的 0.4 改為 0.2,就是保留小數點后兩位,以此類推。
如果我們還想保留有效數字要怎么做呢?
保留有效數字
其實用 print() 函數即可選擇保留幾位有效數字,只需使用 digits = 4 即可。例如使用 print(12.3456, digits = 4) ,所得結果是:12.34。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。
原文鏈接:https://blog.csdn.net/xxzhangx/article/details/52975311