มีฟังก์ชันใน R เพื่อแสดงตัวเลขขนาดใหญ่โดยคั่นด้วยเครื่องหมายจุลภาคหรือไม่?
เช่นจากการ10000001,000,000
มีฟังก์ชันใน R เพื่อแสดงตัวเลขขนาดใหญ่โดยคั่นด้วยเครื่องหมายจุลภาคหรือไม่?
เช่นจากการ10000001,000,000
คำตอบ:
คุณสามารถลองฟอร์แมตหรือ prettyNum ก็ได้ แต่ทั้งสองฟังก์ชันจะส่งกลับเวกเตอร์ของอักขระ ฉันจะใช้สำหรับการพิมพ์เท่านั้น
> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
แก้ไข: ดังที่ Michael Chirico กล่าวไว้ในความคิดเห็น:
โปรดทราบว่าสิ่งเหล่านี้มีผลข้างเคียงจากการขยายสตริงที่พิมพ์ด้วยช่องว่างตัวอย่างเช่น:
> prettyNum(c(123,1234),big.mark=",")
[1] " 123" "1,234"
เพิ่มtrim=TRUEไปformatหรือpreserve.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"
prettyNum(c(123,1234),big.mark=","); ให้" 123" "1,234". เพิ่มtrim=Tไปformatหรือpreserve.width="none"เพื่อprettyNumการป้องกันนี้
format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)ให้ "12,345,678.0000" "0.0012" ก็เพียงพอแล้ว กล่าวคือการจัดรูปแบบสถานที่ไม่ได้ทำบนองค์ประกอบตามองค์ประกอบ จับฉันออกไปดังนั้นจึงต้องการแบ่งปันสิ่งนี้
scientific formatขอบคุณ!
ดู?format:
> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000"
>
คำตอบอื่น ๆ ที่โพสต์เห็นได้ชัดว่าใช้งานได้ - แต่ฉันใช้มาตลอด
library(scales)
comma_format()(1000000)
comma_formatไม่ได้จัดการตัวเลขจริง แต่ตอนนี้คุณสามารถทำสิ่งต่อไปนี้ซึ่งส่งผลให้ต่อไปนี้:scales::comma_format(digits = 12)(1000000.789) "1,000,000.789"
ฉันคิดว่าความคิดเห็นของ Joe ต่อ MatthewR เป็นคำตอบที่ดีที่สุดและควรเน้น:
ณ เดือนกันยายน 2018 scalesแพคเกจ (บางส่วนTidyverse) ทำสิ่งนี้:
> library(scales)
> x <- 10e5
> comma(x)
[1] "1,000,000"
scalesแพคเกจที่ดูเหมือนจะเล่นอย่างมากกับggplot2การอนุญาตให้การควบคุมที่ดีของวิธีการ numerics จะแสดงในแปลงและแผนภูมิ