2013-09-04 10 views
10

मैं RStudio का उपयोग करके अपने स्वयं के पैकेज बनाने के लिए सीख रहा हूं। पैकेज के लिए वर्तमान .tar.gz (नाम SteenSubsSpec) here है। वर्तमान में Build & Reload कमांड & पैकेज को सफलतापूर्वक प्रबंधित करने के लिए प्रतीत होता है। हालांकि, Build & Reload सफलतापूर्वक दस्तावेज़ों को अद्यतन करने के बावजूद, फ़ंक्शन स्मृति में लोड नहीं होते हैं। मैं क्या गलत कर रहा हूं?फ़ंक्शन होमबिल पैकेज से लोड नहीं किए गए

Build & Reload निम्नलिखित उत्पादन दे:

==> roxygenize('.', roclets=c('rd')) 
  • परिवर्तन के लिए जाँच ...

==> आर सीएमडी SteenSubsSpec

* checking for file ‘SteenSubsSpec/DESCRIPTION’ ... OK 
* preparing ‘SteenSubsSpec’: 
* checking DESCRIPTION meta-information ... OK 
* excluding invalid files 
Subdirectory 'R' contains invalid file names: 
    ‘2013_08_30_report-concordance.tex’ ‘2013_08_30_report.Rnw’ 
    ‘2013_08_30_report.log’ ‘2013_08_30_report.pdf’ 
    ‘2013_08_30_report.synctex.gz’ ‘2013_08_30_report.tex’ 
* checking for LF line-endings in source and make files 
* checking for empty or unneeded directories 
Removed empty directory ‘SteenSubsSpec/inst’ 
* building ‘SteenSubsSpec_1.0.tar.gz’ 

Source package written to ~/Dropbox/[my directory] 

निर्माण किया यह प्रलेखन अद्यतन करता है : ?write_paper() वर्तमान दस्तावेज़ प्रदर्शित करता है उम्मीद के अनुसार आयन। हालांकि

require(SteenSubsSpec) 
write_paper() 

Error: could not find function "write_paper"

कुछ चीजें हैं जो सही होने लगते हैं देता है:

  • सभी समारोह फ़ाइलों R निर्देशिका में हैं, और उनकी परिभाषा के रूप में एक ही नाम है (उदाहरण के लिए /R/write_paper.R को परिभाषित करता है write_paper() <- function {...
  • DESCRIPTION फ़ाइल में सभी प्रासंगिक फ़ंक्शन फ़ाइलों का नाम शामिल है: Collate: ... 'write_paper.R

मैं इसका निवारण कैसे कर सकता हूं?

+0

क्या आपने नामस्थान में उन्हें उपलब्ध कराने के लिए फ़ंक्शंस निर्यात किए हैं? क्या आप इसे 'SteenSubsSpec ::: write_paper() 'से एक्सेस कर सकते हैं? – A5C1D2H2I1M1N2O1R2T1

+0

मैं अनुमान लगा रहा हूं - मुझे वास्तव में पता नहीं है कि इसका क्या मतलब है, लेकिन गुगलिंग शुरू होगा। ध्यान दें कि NAMESPACE फ़ाइल खाली है। –

+1

तो यह सबसे अधिक संभावना होगी :) – A5C1D2H2I1M1N2O1R2T1

उत्तर

9

अधिकतर, फ़ंक्शंस को NAMESPACE फ़ाइल (जिसे आप वर्तमान में खाली करते हैं) में निर्यात नहीं किया जाता है।

"प्रोजेक्ट विकल्प" में "बिल्ड टूल्स" के तहत, RStudio में, सुनिश्चित करें कि "roxygen के साथ दस्तावेज़ उत्पन्न करें" चेक किया गया है। फिर, "कॉन्फ़िगर करें" पर क्लिक करें। सुनिश्चित करें कि "NAMESPACE फ़ाइल जेनरेट करने के लिए roxygen का उपयोग करें" भी चेक किया गया है।

अपनी आर फ़ंक्शन फ़ाइलों में, वहां @export yourfunctionname जोड़ें (या, तकनीकी रूप से, #' @export yourfunctionname), और जब आप बिल्ड और पुनः लोड करते हैं, तो आपकी NAMESPACE फ़ाइल अपडेट की जानी चाहिए और आपके फ़ंक्शंस अब अदृश्य नहीं होना चाहिए।

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