2009-07-10 22 views

उत्तर

45

वास्तव में मेरे लिए निम्नलिखित काम करता है:

write("prints to stderr", stderr()) 

write("prints to stdout", stdout()) 
+0

यह लिनक्स पर है, आर 2.8.1 (प्रतिलेख का उपयोग करके) – Frank

+1

यह कोड विंडोज पर भी काम करता है। अधिक स्वरूपण नियंत्रण के लिए, आप लिखने के बजाय बिल्ली का उपयोग कर सकते हैं। –

+0

एफडब्ल्यूआईडब्ल्यू, यह सीमित है, इसमें यह केवल तभी काम करता है जब पहला तर्क 'बिल्ली' द्वारा आउटपुट किया जा सके। ऐसे वर्ग हैं जिनके लिए काम करने के लिए 'प्रिंट' की आवश्यकता होती है, जहां आपको 'सिंक' का उपयोग करना होगा, जैसा गैलवेजियन नीचे बताता है। – Harlan

7

क्या stderr पर प्रिंट करने के लिए प्रिंट फ़ंक्शन को कॉन्फ़िगर करना संभव है?

From Ripley himself:

नहीं, लेकिन जहां मानक आउटपुट चला जाता है सिंक (द्वारा नियंत्रित), ताकि आप एक ही प्रभाव को प्राप्त कर सकते हैं। आंतरिक रूप से को पता नहीं है कि आउटपुट प्रिंट() से आता है (जो केवल एक फ़ंक्शन नहीं बल्कि सैकड़ों तरीकों से है)।

7

यहाँ Rscript में डिबगिंग/वर्बोज़ इस्तेमाल के लिए एक और अधिक लचीला संस्करण है। इतना ही नहीं यह stderr को प्रिंट के रूप में आप से पूछना, लेकिन यह भी, printf करता है जैसे आप तर्क, प्रकार आदि की चर संख्या पारित करने के लिए अनुमति देता है।

v <- function(...) cat(sprintf(...), sep='', file=stderr()) 

तरह बातें अब एक कर सकते हैं:

v("name: %s age: %d\n", name, age) 

आदि

+0

यह बहुत अच्छा है !!! लोगों के लिए समझ में जो नहीं था ..., इस का संदर्भ लें .. http://stackoverflow.com/questions/3057341/how-to-use-rs-ellipsis-feature-when-writing-your-own-function – myloginid

0
message('for writing diagnostic info to standard error') 

संदेश 'सरल' नैदानिक ​​संदेश जो न तो चेतावनी है और न ही त्रुटियाँ हैं पैदा करने के लिए प्रयोग किया जाता है, लेकिन फिर भी परिस्थितियों के रूप में प्रतिनिधित्व किया। चेतावनियों और त्रुटियों के विपरीत, एक अंतिम रूपरेखा संदेश के हिस्से के रूप में माना जाता है, और वैकल्पिक है। डिफ़ॉल्ट हैंडलर संदेश को stderr() कनेक्शन भेजता है।

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