sweave

2010-06-28 11 views
8

के साथ त्रुटियों को प्रदर्शित करना मैं स्वीवे के साथ कुछ आर नोट्स लिख रहा हूं और सामान्य त्रुटियों को दिखाना चाहता हूं। उदाहरण के लिए,sweave

<<echo=TRUE, eval=TRUE>>= 
x = 5 
#Case matters! 
x*X 
@ 

हालांकि जब स्वैच्छिक हो, तो दस्तावेज़ आर त्रुटि के कारण संकलित नहीं होगा। क्या पसीना संकलन करने और (अच्छी तरह से तैयार) त्रुटि दिखाने का कोई तरीका है?

उत्तर

5

शेन पता चलता है, कोड है कि त्रुटि के लिए उपयोग करें

<<echo=TRUE,eval=FALSE>> 

, लेकिन आप प्रदर्शित करना चाहते हैं, और फिर यह प्रदर्शन जारी रहेगा कोशिश में लिपटे एक ही कोड के साथ।

यहाँ एक उदाहरण है: http://tolstoy.newcastle.edu.au/R/help/05/09/11690.html

2

try() कमांड में अपनी त्रुटि लपेटें।

<<echo=FALSE,eval=TRUE,results=verbatim>> 

लेकिन साथ तो फिर

> {print(1); try(x*X); print(2)} 
[1] 1 
Error in try(x * X) : object 'X' not found 
[1] 2 
+0

मैंने इसके बारे में सोचा, लेकिन 'कोशिश' – csgillespie

+1

प्रदर्शित करने से बचना चाहूंगा मेरा दूसरा विचार यह था कि एक विकल्प (त्रुटि = कुछ.फंक्शन) हो सकता है जो काम कर सकता है, लेकिन मुझे कुछ भी नहीं मिला। आप कोड के प्रत्येक टुकड़े को दो बार कॉल कर सकते हैं: एक बार कोशिश करें और गूंज = गलत लेकिन eval = TRUE और त्रुटि संदेश कैप्चर करें। फिर एक बार कोशिश के बिना और सेटिंग्स उलट दिया। फिर बस त्रुटि संदेश को अलग से मुद्रित करें। – Shane

8

अगर मैं इतना कह सकते हैं यह, knitr, "अगली पीढ़ी Sweave" के साथ एक गैर मुद्दा है। यह डिफ़ॉल्ट रूप से त्रुटियों और चेतावनियों को प्रदर्शित करता है, जो Sweave में अन्य अच्छी सुविधाओं (जैसे सिंटैक्स रंग, पीजीएफ एकीकरण और साजिश एनीमेशन, स्टार्टर्स के लिए) के साथ मुश्किल या असंभव था। यह भी सक्रिय रूप से विकसित और बनाए रखा जाता है।

Sweave कोड उसी पैकेज द्वारा प्रदान किए गए फ़ंक्शन Sweave2knitr का उपयोग करके एक बार परिवर्तित किया जाना चाहिए।

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