R में संख्याओं के लिए कोमा सेपरेटर?


99

क्या बड़ी संख्या में अल्पविराम के साथ प्रदर्शित करने के लिए R में एक फ़ंक्शन है?

यानी, से 1000000करने के लिए 1,000,000


एक्सेल में कुछ आसान के क्लासिक मामले और आर
नेटल

जवाबों:


134

आप या तो प्रारूप या सुंदर नाम की कोशिश कर सकते हैं, लेकिन दोनों फ़ंक्शन वर्णों का एक वेक्टर लौटाते हैं। मैं केवल मुद्रण के लिए उपयोग करूँगा।

> 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=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"

5
ज्ञात हो कि ये रिक्त स्थान के साथ मुद्रित स्ट्रिंग्स को पैड करने का दुष्प्रभाव है, उदाहरण के लिए prettyNum(c(123,1234),big.mark=","):; देता है " 123" "1,234"। जोड़ने trim=Tके लिए formatया preserve.width="none"करने के लिए prettyNumइसे रोकने के लिए।
माइकलचिरिको

@MichaelChirico अतिरिक्त जानकारी के लिए धन्यवाद। मैंने इसे उत्तर में जोड़ दिया है।
जोरिस मेयस

ध्यान दें कि यदि आप दशमलव स्थानों के लिए भी अंक अंक हैं, तो यदि आपके पास एक वेक्टर है तो यह अजीब हो सकता है यदि अंकांक काफी अलग हैं। मदद से "अंकीय वैक्टर दशमलव में न्यूनतम अंक महत्वपूर्ण अंक के लिए सभी तत्वों को प्रदर्शित करने के लिए की जरूरत है स्थानों की न्यूनतम संख्या के साथ इनकोड हालांकि, अगर सभी तत्वों को तो शून्य अनुगामी है, दशमलव स्थानों की संख्या nsmall तक कम हो जाता है।"
माइक्रा

1
तो format(c(12345678,0.001234),big.mark=",", trim=TRUE, digits = 2, scientific = FALSE)देता है "" 12,345,678.0000 "" 0.0012 "तो काफी देखा जा सकता है। अर्थात फॉर्मेटिंग स्थानों को तत्व के आधार पर किसी तत्व पर नहीं किया जाता है। मुझे पकड़ा इसलिए इसे साझा करना चाहता था।
माइक्रा

कुछ समय बिताने की कोशिश कर रहे हैं, scientificजो तर्कों के ढेर में छिपा है format। धन्यवाद!
माइकलचिरिको


11

पोस्ट किए गए अन्य उत्तर स्पष्ट रूप से काम करते हैं - लेकिन मैंने हमेशा उपयोग किया है

library(scales)    
comma_format()(1000000)

फ़ंक्शन comma_format केवल पूर्णांकों से निपट सकता है।
वेन याओ

3
यह एक बहुत देर से प्रतिक्रिया है, और यह अतीत में सच हो सकता है जो comma_formatवास्तविक संख्या को संभाल नहीं पाया था, लेकिन अब आप निम्न कार्य कर सकते हैं: scales::comma_format(digits = 12)(1000000.789)जिसके परिणामस्वरूप निम्नलिखित हैं "1,000,000.789":।
चरण 50

2
तराजू :: अल्पविराम (1000000) एक उल्लेख के लायक है।
जो

3

मुझे लगता है कि मैथ्यू को जो की टिप्पणी सबसे अच्छा जवाब देती है और इसे हाइलाइट किया जाना चाहिए:

सितंबर 2018 तक, scalesपैकेज (का हिस्सा Tidyverse) बिल्कुल यही करता है:

> library(scales)

> x <- 10e5
> comma(x)

[1] "1,000,000"

scalesपैकेज के साथ बहुत अच्छी तरह से खेलने के लिए प्रकट होता है ggplot2, कैसे numerics भूखंडों और चार्ट में प्रदर्शित कर रहे हैं के ठीक नियंत्रण के लिए अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.