2012-02-22 16 views
144

क्या मैं e+10 का उपयोग करने के बजाय नियमित संख्याओं का उपयोग करने के लिए आर को मजबूर कर सकता हूं? मेरे पास है:फोर्स आर घातीय नोटेशन (उदाहरण के लिए ई + 10) का उपयोग न करें?

1.810032e+09 
# and 
4 
ही वेक्टर भीतर

और देखना चाहते हैं:

1810032000 
# and 
4 

मैं एक पुराने जमाने कार्यक्रम के लिए उत्पादन बनाने रहा हूँ और मैं cat का उपयोग कर एक पाठ फ़ाइल में लिखने के लिए है। यह अभी तक ठीक काम करता है लेकिन मैं बस e+10 नोटेशन का उपयोग नहीं कर सकता।

+0

संबंधित: http://stackoverflow.com/q/3978266/134830 –

उत्तर

153

यह एक भूरे रंग का क्षेत्र है। आपको याद रखना होगा कि आर हमेशा एक प्रिंट विधि का आह्वान करेगा, और ये प्रिंट विधियां कुछ विकल्पों को सुनती हैं। 'Scipen' सहित - वैज्ञानिक प्रदर्शन के लिए एक जुर्माना। help(options) से:

'scipen': पूर्णांक। मुद्रित या घातीय नोटेशन में संख्यात्मक मान मुद्रित करने का निर्णय लेने पर एक जुर्माना लागू किया जाना चाहिए। सकारात्मक वैज्ञानिक नोटेशन के लिए निश्चित और नकारात्मक की दिशा में पूर्वाग्रह मानता है: निश्चित नोटेशन को तब तक प्राथमिकता दी जाएगी जब तक कि यह 'scipen' अंकों से अधिक न हो।

उदाहरण:

R> ran2 <- c(1.810032e+09, 4) 
R> options("scipen"=-100, "digits"=4) 
R> ran2 
[1] 1.81e+09 4.00e+00 
R> options("scipen"=100, "digits"=4) 
R> ran2 
[1] 1810032000   4 

कहा, मैं अभी भी यह fudgeworthy पाते हैं। स्पष्ट चौड़ाई के साथ sprintf() का सबसे सस्ता तरीका उपयोग करना है।

+1

धन्यवाद। लगता है कि मैं जिस विकल्प की तलाश में था, वह लगता है। डरावनी जुर्माना स्पष्टीकरण ने मुझे शर्मिंदा कर दिया। लेकिन आपका उदाहरण अच्छी तरह से बताता है। sprintf, हुह? क्या आप एक सप्ताह पहले sprintf के साथ परेशानियों का जिक्र कर रहे हैं? :) –

+1

rstudio में, यदि आप एक डेटासेट आयात करते हैं और train_sample_10k = प्रारूप (train_sample_10k, वैज्ञानिक = गलत) और पुनः लोड करते हैं, तो यह वैज्ञानिक नोटेशन बदल देगा। – mixdev

+0

इस विधि के साथ समस्या सभी चर 'char' बनाता है ... – pyll

92

यह आर

options(scipen = 999) 
+0

इसके अलावा, इसे आपकी [.profile फ़ाइल] (https: //csgillespie.github) में रखा जा सकता है। आईओ/कुशल आर/3-3-आर-स्टार्टअप.html # rprofile) तो यह डिफ़ॉल्ट रूप से स्वत: निष्पादित हो जाता है। – smci

11

मेरा पसंदीदा जवाब में वैज्ञानिक संकेतन को अक्षम करके प्राप्त किया जा सकता:

format(1810032000, scientific = FALSE) 
# [1] "1810032000" 

इससे क्या आप आर सेटिंग में के बारे में गंदगी के लिए बिना चाहते हैं।

-1

options(scipen = 999) अपने .Rprofile file में रख दें ताकि यह डिफ़ॉल्ट रूप से स्वत: निष्पादित हो जाए।

(यह अन्य उत्तर के लिए अलग कैसे है? अपनी सभी कॉन्फ़िगरेशन को एक परियोजना-व्यापी या वैश्विक में रखते हुए .profofile इसे स्वतः निष्पादित करता है। यह डिफ़ॉल्ट पैकेज लोड, डेटाटेबल कॉन्फ़िगरेशन, पर्यावरण इत्यादि के लिए उपयोगी है)

+0

बिल्कुल वही जवाब क्यों? https://stackoverflow.com/a/27318351/680068 Rprofile बिट के अलावा, शायद जिंजर जैक के उत्तर को बेहतर ढंग से संपादित करें? – zx8754

+0

@ zx8754: यह बिल्कुल वही उत्तर नहीं है: महत्वपूर्ण बिंदु यह सामान आपके लिए स्थानांतरित हो गया है। प्रोफाइल। फिर आप इसे कभी नहीं भूल सकते हैं। साथ ही, जैसा कि समय आपके द्वारा जाता है। प्रोफाइलाइल आपके सभी अनुकूलन जमा करता है। – smci

+0

निश्चित रूप से आप पर निर्भर है, लेकिन क्यू "मैं एक्स कैसे करना भूल नहीं सकता" लेकिन "मैं एक्स कैसे कर सकता हूं" नहीं है। – zx8754