2012-03-28 10 views
15

मैं अपने पैकेजों में से एक के लिए एक विगनेट लिख रहा हूं।क्या पैकेज विग्नेट में गैर-आयातित पैकेज का उपयोग करना संभव है?

इस शब्दचित्र में, मैं प्रदर्शित करने के लिए कैसे इस पैकेज otehr संकुल कि नहींNAMESPACE द्वारा या DESCRIPTION फ़ाइल के Imports अनुभाग द्वारा आयात किया जा रहा हैं साथ बातचीत कर सकते करना चाहते हैं।

तो, मैं एक require कॉल मेरी शब्दचित्र में इन बाह्य संकुल का उपयोग करने के डाल रहा हूँ, लेकिन निश्चित रूप से मुझे मिल निम्नलिखित NOTE जब मैं R CMD check के लिए पैकेज की कोशिश:

* checking for unstated dependencies in vignettes ... NOTE 
‘library’ or ‘require’ call not declared from: ‘RColorBrewer’ 

वहाँ के आसपास कोई तरीका है यह, या मुझे या तो eval=FALSE का उपयोग करके इन बाहरी पैकेजों या "नकली" विग्नेट आयात करना चाहिए?

उत्तर

20

इसे फ़ाइल में Suggests: में रखें।

पी से। 6 R extensions manual की:

'का सुझाव देता है' फील्ड 'के रूप में निर्भर करता है' और सूचियों संकुल जरूरी है कि आवश्यक नहीं हैं एक ही सिंटैक्स का उपयोग करता। इसमें उदाहरणों, परीक्षणों या विगेट्स में केवल का उपयोग किया गया पैकेज शामिल है (अनुभाग 1.4 देखें [पैकेज विगनेट्स], पृष्ठ 26), और कार्यों के शरीर में लोड किए गए पैकेज। उदा।, मान लें कि पैकेज foo से एक उदाहरण पैकेज बार से डेटासेट का उपयोग करता है। फिर बार का उपयोग करने के लिए जरूरी नहीं है जब तक कि कोई सभी उदाहरण/परीक्षण/विगेट्स निष्पादित नहीं करना चाहता: बार, होना आवश्यक है लेकिन आवश्यक नहीं है। संस्करण आवश्यकताओं को निर्दिष्ट किया जा सकता है, और होगा जो आर सीएमडी चेक द्वारा उपयोग किया जाता है।

+0

धन्यवाद बेन, यह चाल है - मैं स्पष्ट रूप से 'Suggests' फ़ील्ड के पीछे क्षमताओं को समझ नहीं पाया। क्षमा करें यह एक आरटीएफएम सवाल का थोड़ा सा साबित हुआ! – Pierre

3

इसके अलावा अगर शब्दचित्र ठीक से उस पैकेज पर निर्भर करता है, वहाँ शब्दचित्र अपने आप में एक

% \VignetteDepends{...} 

बयान होना चाहिए: Sweave, Part II: Package Vignettes, R News 3/2 (Oct. 2003), 21 - 24.

हालांकि, अपने मामले संभवतः थोड़ा अलग है:

मैं का उपयोग % \\VignetteDepends{pkgxy} (Suggests: pkgxy में किसी भी तरह की आवश्यकता है) कुछ चीजों के लिए मैं चाहता हूं कैसे लेकिन जहां मैं उपयोगकर्ता को सभी सुझाए गए pacakges स्थापित करने के लिए मजबूर नहीं करना चाहता। मैंने विग्नेट की शुरुआत में एक बॉक्स लगाया जहां मैं रिपोर्ट करता हूं कि इनमें से कौन से पैकेज उपलब्ध हैं और अगर विगनेट बनाया गया है तो कोई पैकेज उपलब्ध नहीं है, तो "इसे करने के लिए pkgxy की आवश्यकता है" टेक्स्ट को विग्नेट में रखा जाता है।

"introduction" vignette of package hyperSpec एक उदाहरण है (यह पता लगाने के लिए कि यह वास्तव में कैसे काम करता है, आपको केवल the .Rnw की आवश्यकता नहीं है बल्कि some more definitions) भी आवश्यक है।

+0

स्पष्टीकरण के लिए धन्यवाद! हाइपरस्पेक "परिचय" का लिंक नीचे है, शायद सबसे अच्छी शुरुआत [यहां] (http://hyperspec.r-forge.r-project.org/) इसके बजाए। – dardisco

+0

@ डेर्डिस्को: धन्यवाद - मैंने टूटी हुई लिंक तय की है। – cbeleites

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