2013-03-31 57 views
5

我希望R控制檯的輸出看起來可讀。爲此,我希望R將我的所有數字舍入到最接近的N位小數位。我有一些成功,但它完全不起作用:輸出中的圓形數字顯示小的零點數量爲零

> options(scipen=100, digits=4) 
> .000000001 
[1] 0.000000001 
> .1 
[1] 0.1 
> 1.23123123123 
[1] 1.231 

我想0.000000001顯示爲0只是一個人如何做到這一點?讓我更具體一點:我想爲整個R會議提供一個全局修復。我意識到我可以通過四捨五入來開始修改事物,但與簡單地爲整個會話設置事物相比,它沒有什麼幫助。

+2

在我看來,這顯示'0.000000001'爲'0'無法讀取,它只是誤導(這有什麼錯科學記數法對於這樣的情況?) –

+0

當我運行一個迴歸,我的變量往往是'scale'd使0.000000001實際上爲零(無關緊要的tstat),但它顯示爲1e-9時,如果有一堆數字顯示爲1e-9,其中一些顯示爲1e0(這是實際上是重要的) – Alex

+2

你怎麼輸出你的迴歸?無論你使用什麼功能,它都有一個打印命令。在該打印命令中,根據需要插入「round(x,4)」。 –

回答

2

嘗試

sprintf("%.4f", 0.00000001) 
[1] "0.0000" 
+1

但是這不像海報似乎想要的那樣是全局性的。 –

+0

謝謝,但正如泰勒所說,我希望在會議中做一次事情,而不是每次我做迴歸時四捨五入。 – Alex

4

?options,特別是digitsscipen選項。

+1

你能更具體嗎?顯然,我已經從這個問題中看到了那些...... – Alex

0

結合Greg Snow和Ricardo Saporta已經給你的答案:options('scipen'=+20) and options('digits'=2),加上round(x,4)

round(x,4)將圍繞接近零的小數量。

要麼你圓了你的迴歸結果一次,其存儲:

x <- round(x, 4) 

...不然是的,你必須做你每次顯示少量的,如果你不想要存儲其四捨五入的值。就你而言,既然你說過接近零的小數量實際上代表零,那麼你爲什麼不圍繞它呢?

如果由於某種原因需要保留精確版本和圓形版本,那麼請執行此操作。

x.rounded <- round(x, 4)