สิ่งหนึ่งที่ทำให้ฉันงงงวยในฐานะผู้สร้างใหม่โดยใช้ R คือการจัดรูปแบบตัวเลขเป็นเปอร์เซ็นต์สำหรับการพิมพ์
ยกตัวอย่างเช่นแสดงเป็น0.12345
12.345%
ฉันมีวิธีแก้ปัญหาหลายประการสำหรับสิ่งนี้ แต่ดูเหมือนจะ "ใหม่โดยมิตร" ไม่ได้เลย ตัวอย่างเช่น:
set.seed(1)
m <- runif(5)
paste(round(100*m, 2), "%", sep="")
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
sprintf("%1.2f%%", 100*m)
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
คำถาม:มีฟังก์ชัน R ฐานสำหรับทำสิ่งนี้หรือไม่? นอกจากนี้ยังมีแพ็คเกจที่ใช้กันอย่างแพร่หลายซึ่งมีเครื่องห่อหุ้มที่สะดวกหรือไม่?
แม้จะมีการค้นหาสิ่งที่ต้องการในเรื่องนี้?format
, ?formatC
และ?prettyNum
ฉันยังไม่พบเสื้อคลุมสะดวกเหมาะสมในฐานอาร์ ??"percent"
ไม่ได้ผลอะไรที่เป็นประโยชน์ library(sos); findFn("format percent")
ส่งคืนการเข้าชม 1250 ครั้ง - อีกครั้งจึงไม่มีประโยชน์ ggplot2
มีฟังก์ชันpercent
แต่ไม่สามารถควบคุมความแม่นยำในการปัดเศษได้
sprintf
ดีอย่างสมบูรณ์แบบสำหรับชุดย่อยของ R coders ที่เป็นโปรแกรมเมอร์ด้วย ฉันเขียนโค้ดหลายอย่างในชีวิตรวมถึง COBOL (ตัวสั่น) และ Fortran (แสดงอายุของฉัน) แต่ฉันไม่คิดว่าsprintf
กฎการจัดรูปแบบชัดเจน (แปล: WTF?) และแน่นอนว่ากระดาษห่อหุ้มเฉพาะจะต้องเรียกได้ง่ายกว่า sprintf เช่นformat_percent(x=0.12345, digits=2)
sprintf()
เป็นเวลาที่แทบจะไม่บริโภคกว่าหาว่าแพคเกจfooformat_percent()
มี จะเกิดอะไรขึ้นถ้าผู้ใช้ไม่ต้องการจัดรูปแบบเป็นเปอร์เซ็นต์ แต่เป็นอย่างอื่นที่คล้ายกัน? พวกเขาต้องหากระดาษห่ออื่น ในระยะยาวการเรียนรู้เครื่องมือพื้นฐานจะเป็นประโยชน์
%
คืออักขระข้อคิดเห็นใน LaTeX ซึ่งเป็นรูปแบบการรายงาน "เริ่มต้น" สำหรับ R ดังนั้นในขณะที่อาจเป็นประโยชน์สำหรับการติดฉลากกราฟ แต่ต้องใช้ความระมัดระวังหากต้องกวาดตัวเลขที่จัดรูปแบบ
sprintf
ดูเหมือนจะเป็นทางออกที่ชื่นชอบในรายชื่อส่งเมลและฉันไม่เห็นวิธีแก้ปัญหาที่ดีกว่านี้ ฟังก์ชั่นในตัวใด ๆ จะไม่เรียกง่ายกว่านี้ใช่ไหม?