2012-09-28 10 views

उत्तर

19

केवल जब आप संख्यात्मक मान आउटपुट करते हैं तो आपको एक ठोस प्रतिनिधित्व चुनना होगा (यानी, संख्या को स्वरूपित किया जाना चाहिए)। आप "-0.34" से "-.34" तक एक संख्यात्मक चर नहीं बदल सकते हैं; दोनों एक ही संख्या के लिए प्रतिनिधित्व हैं।

हालांकि, जब आप e अभिव्यक्ति आउटपुट करते हैं, तो आप यह चुन सकते हैं कि इसे प्रारूपित कैसे किया जाना चाहिए। मैं अग्रणी "0" बंद छोड़ने के लिए किसी भी निर्माण में जिस तरह से पता नहीं है, लेकिन आप हमेशा सिर्फ इसे मैन्युअल रूप से निकाल सकते:

> sub("^(-?)0.", "\\1.", sprintf("%.2f", -0.34)) 
[1] "-.34" 

आप, उदाहरण के लिए,

numformat <- function(val) { sub("^(-?)0.", "\\1.", sprintf("%.2f", val)) } 
सुविधा के लिए एक समारोह को परिभाषित कर सकते
+0

लेकिन 'उप' चर को परिवर्तनीय में बदलता है ... –

+0

सुधार: * –

2

@ स्टीफन के अच्छा जवाब के अलावा, मैं निम्नलिखित कोड है जो एक ही बात सिद्ध लेकिन अधिक दशमलव स्थानों के बाहर प्रिंट पर ठोकर खाई:

f = function(X1)gsub("0\\.","\\.", X1) 
+3

बदलता है आपको बस "0." को बदलने के बारे में सावधान रहना होगा "।" के साथ, क्योंकि यह "10.12" को "1.12" में बदल देगा, जिसका संभवतः इरादा नहीं है। मैंने नियमित अभिव्यक्ति '"^ (-?) 0." का उपयोग करके इसे हल किया। यह केवल तभी मेल खाता है जब शून्य पहला अक्षर है (संभवतः एक '-' को छोड़कर)। – stefan

+0

टिप, स्टीफन के लिए धन्यवाद। @Manoel Galdino - मेरे लिए स्टीफन के फ़ंक्शन का उपयोग करने के बाद परिवर्तनीय संख्यात्मक बनी हुई है। – rolando2

7

मौजूदा जवाब के अलावा, मुझे लगता है कि उल्लेख करना चाहता था पैकेज weights में एक फ़ंक्शन rd() है जिसका उपयोग "किसी भी अग्रणी शून्य के साथ पाठ के लिए संख्याओं को गोल करने" के लिए किया जा सकता है। बेशक, परिणाम संख्यात्मक लेकिन चरित्र नहीं है।

library("weights") 
rd(-0.341, digits=2) 
[1] "-.34" 
0

मुझे संख्याओं को 3 दशमलव स्थानों पर दिखाने की आवश्यकता है। यदि आप दशमलव स्थानों की मनमानी संख्या में प्रिंट करना चाहते हैं और आप एक और पैकेज (यानी, weights उपरोक्त पैकेज) जोड़ना नहीं चाहते हैं, तो यह फ़ंक्शन (@ स्टीफन के उत्तर से अनुकूलित) काम करता है:

numformat <- function(x, digits = 2) { 
    ncode <- paste0("%.", digits, "f") 
    sub("^(-?)0.", "\\1.", sprintf(ncode, x)) 
} 
उदाहरण के लिए

तो:

> numformat(-.232, 2) 
[1] "-.23" 
> numformat(-.232, 3) 
[1] "-.232" 
> numformat(-.232, 4) 
[1] "-.2320" 
0

यदि यह आर Markdown में रिपोर्ट करने के लिए है मैं समारोह ए पी ए() और कोड के साथ पैकेज धूलि का कण का उपयोग करें: apa(-0.34, 2, FALSE) इस वापस आ जाएगी -.34 अपने दस्तावेज़ों में।

संबंधित मुद्दे