2010-10-01 344 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