2010-10-01 34 views

Trả lời

89

Bạn có thể thử một trong hai định dạng hoặc prettyNum, nhưng cả hai chức năng trả về một vector của các nhân vật. Tôi chỉ sử dụng nó để in.

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

EDIT: Như Michael Chirico nói trong bình luận:

Hãy nhận biết rằng những có tác dụng phụ của đệm các dây in với không gian trống, ví dụ:

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

Thêm trim=TRUE vào format hoặc preserve.width="none" đến prettyNum để ngăn chặn điều này:

> 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

Hãy nhận biết rằng những có tác dụng phụ của đệm các dây in với không gian trống, ví dụ: 'prettyNum (c (123 , 1234), big.mark = ",") '; cho '" 123 "" 1,234 "'. thêm 'trim = T' vào' format' hoặc 'preserve.width =" none "' thành 'prettyNum' để ngăn chặn điều này. – MichaelChirico

+0

@MichaelChirico Cảm ơn bạn đã cung cấp thêm thông tin. Tôi đã thêm nó vào câu trả lời. –

+0

Lưu ý nếu bạn cũng cài đặt chữ số cho số thập phân, nếu bạn có một véc-tơ, điều này có thể bị xáo trộn nếu các chữ số khác nhau. Từ trợ giúp "Số vectơ được mã hóa với số chữ số thập phân tối thiểu cần thiết để hiển thị tất cả các phần tử đến ít nhất chữ số có nghĩa. Tuy nhiên, nếu tất cả các phần tử có số 0, thì số chữ số thập phân sẽ giảm cho đến khi số" – micstr

26

Xem ?format:

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

Những câu trả lời khác được đăng rõ ràng làm việc - nhưng tôi đã luôn luôn sử dụng

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

Hàm comma_format chỉ có thể xử lý các số nguyên. –

+3

Đây là một phản ứng rất muộn, và nó có thể đúng trong quá khứ mà 'comma_format' không xử lý số thực nhưng bây giờ bạn có thể làm như sau:' scale :: comma_format (digits = 12) (1000000.789) ' kết quả như sau: '" 1.000.000.789 "'. – steveb

Các vấn đề liên quan