2010-10-01 341 views

回答

89

您可以嘗試這兩種格式或prettyNum,但兩個函數返回字符的載體。我只會用它來打印。

> prettyNum(12345.678,big.mark=",",scientific=FALSE) 
[1] "12,345.68" 
> format(12345.678,big.mark=",",scientific=FALSE) 
[1] "12,345.68" 

編輯:正如邁克爾·基里科的評論說:

要知道,這些具有填補空白空間打印字符串的副作用,例如:

> prettyNum(c(123,1234),big.mark=",") 
[1] " 123" "1,234" 

trim=TRUEformatpreserve.width="none"prettyNum以防止出現這種情況:

> prettyNum(c(123,1234),big.mark=",", preserve.width="none") 
[1] "123" "1,234" 
> format(c(123,1234),big.mark=",", trim=TRUE) 
[1] "123" "1,234" 
+5

要知道,這些具有填補空白空間打印字符串的副作用,例如:'prettyNum(C(123 ,1234),big.mark = 「」)';給出了「123」「1,234」'。將'trim = T'添加到'format'或'preserve.width =「none」'到'prettyNum'來防止這種情況發生。 – MichaelChirico 2015-05-21 19:41:40

+0

@MichaelChirico感謝您的額外信息。我已將它添加到答案中。 – 2015-05-22 08:37:02

+0

注意如果你也是小數位的設置數字,如果你有一個矢量,如果數字完全不同,這可能會出錯。來自幫助「數字矢量編碼所需的最小小數位數,以將所有元素顯示爲至少有效數字的位數。但是,如果所有元素都有尾隨零,則小數位數將減少,直到nsmall」 – micstr 2015-12-10 11:36:25

26

?format

> format(1e6, big.mark=",", scientific=FALSE) 
[1] "1,000,000" 
> 
6

其他的答案張貼明顯的工作 - 但我一直使用

library(scales)  
comma_format()(1000000) 
+0

函數comma_format只能處理整數。 – 2015-10-18 08:21:27

+3

這是一個非常遲的迴應,在過去'comma_format'沒有處理實數,但現在您可以執行以下操作:'scales :: comma_format(digits = 12)(1000000.789)'結果如下:'「1,000,000.789」'。 – steveb 2017-03-20 18:50:13