2013-07-29 74 views
0

我正在尋找一種快速簡單的方法來降低R中數字的精度,以便在圖表上顯示或包含在報告(文本或表格)中。如何減少R中任意數字的有效位數?

我的轉到功能是sprintf(),但它似乎沒有任何格式說明符足夠一般來處理所有可能的情況,即使我正在尋找的是相當常見的(這是我們都是在學校教)。

例如,如果我要舍入到3個顯著數字,我在尋找一個公式,可以採取:

  • 1239451和返回1,240,000
  • -12.1257並​​返回-12.1
  • 0.0681和返回0.0681
  • 5,並返回5

注:This answer提供什麼,我相信這是一個Java類只是這樣一個函數的實現,但我不是javascript專家,所使用的一些函數的語法對我來說並不明顯。另外,我很好奇,如果我錯過了一些基本R或通用庫的內置功能來做到這一點。

+3

搜索 「[R]顯著數字」 產生大量的答案:http://stackoverflow.com/q/3245862/271616,http://stackoverflow.com/q/3443687/271616,HTTP: //stackoverflow.com/q/2287616/271616,http://stackoverflow.com/q/1491124/271616。它也可以在'round'中找到。 –

回答

4
> formatC(signif(1239451, digits=3), big.mark=",", format="fg") 
[1] "1,240,000" 
> formatC(signif(-12.1257, digits=3), big.mark=",", format="fg") 
[1] "-12.1" 
> formatC(signif(.0581, digits=3), big.mark=",", format="fg") 
[1] "0.0581" 
> formatC(signif(5, digits=3), big.mark=",", format="fg") 
[1] "5"