Câu trả lời:
Bạn có thể thử format hoặc prettyNum, nhưng cả hai hàm đều trả về một vectơ ký 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"
CHỈNH SỬA: Như Michael Chirico nói trong nhận xét:
Hãy lưu ý rằng những điều này có tác dụng phụ là đệm các chuỗi được in bằng khoảng 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"
để 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"
prettyNum(c(123,1234),big.mark=",")
:; cho " 123" "1,234"
. thêm trim=T
vào format
hoặc preserve.width="none"
để prettyNum
ngăn chặn điều này.
format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)
cho `" 12,345,678,0000 "" 0,0012 "để có thể thấy đủ. tức là định dạng địa điểm không được thực hiện trên cơ sở từng phần tử. Bắt tôi ra nên muốn chia sẻ điều này.
scientific
cái được ẩn trong đống đối số format
. Cảm ơn!
Xem ?format
:
> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000"
>
Các câu trả lời khác được đăng rõ ràng là có tác dụng - nhưng tôi đã luôn sử dụng
library(scales)
comma_format()(1000000)
comma_format
không xử lý số thực nhưng bây giờ bạn có thể làm những điều sau đây: scales::comma_format(digits = 12)(1000000.789)
mà kết quả trong những điều sau đây: "1,000,000.789"
.
Tôi nghĩ nhận xét của Joe cho MatthewR đưa ra câu trả lời tốt nhất và nên được đánh dấu:
Kể từ tháng 9 năm 2018, scales
gói (một phần của Tidyverse
) thực hiện chính xác điều này:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
Các scales
gói dường như chơi rất độc đáo với ggplot2
, cho phép kiểm soát tốt về cách numerics được hiển thị trong lô và bảng xếp hạng.