2015-03-19 11 views
9

के साथ भ्रम मैं पैकेज बनाने की कोशिश कर रहा हूं लेकिन जब मैं document() चलाता हूं तो यह NAMESPACE not generated by roxygen2. Skipped. प्रिंट करता है मैं अपने कार्यों में ggplot2,XML, R6 पैकेज का उपयोग करने की कोशिश कर रहा हूं। मैं उन्हें निम्नलिखित तरीके से आयात करने हूँ:NAMESPACE roxygen2 द्वारा उत्पन्न नहीं किया गया है। छोड़ दी गई। - हैडली पुस्तक

#' @rdname visualization 
#' @param hist_data A table of weather variables with PWS created by hist_data function 
#' @param variable A character string of variable name 
#' @examples 
#' table <- getWeather(city = "San Francisco", state="CA") 
#' please <- getConditionsTable(table, "2015-03-09") 
#' tab <- hist_data(table, please) 
#' head(tab) 
#' plot_variable_across_all_pws(hist_data=tab, variable="tempi") 
#' @import ggplo2 
#' @import XML 
#' @import R6 

मैं सोच रहा हूँ क्या इस त्रुटि का कारण हो सकता है और सिवाय

इसके अलावा के लिए, मैं हैडली द्वारा आर संकुल पुस्तक से अधिक जा रहा था मेरी Namespace में कोई बात नहीं है http://r-pkgs.had.co.nz/namespace.html और लाइन से उलझन में:

"ध्यान दें कि आप roxygen2 उपयोग करने के लिए सिर्फ nAMESPACE, बस आदमी/* रोड, या दोनों आप किसी भी नाम स्थान से संबंधित टैग का उपयोग नहीं करते हैं, roxygen2 जीता 'उत्पन्न करने के लिए चुन सकते हैं।। NAMESPACE को स्पर्श न करें। यदि आप किसी दस्तावेज़ प्रलेखन का उपयोग नहीं करते हैं एटीड टैग, roxygen2 आदमी/स्पर्श नहीं करेगा। "

क्या यह गलत है? या गायब है?

+0

क्या आपने इसके बजाय डिस्क्रिप्शन फ़ाइल में आयात डालने का प्रयास किया है? roxygen2 कभी भी उस फ़ाइल को छूता नहीं है –

उत्तर

6
  1. बैकअप NAMESPACE फ़ाइल, यदि आप भविष्य में उपयोग के
  2. के लिए इसकी आवश्यकता, NAMESPACE फ़ाइल
  3. भागो devtools::document() हटाएं ताकि roxygen2 पैकेज स्रोत निर्देशिका में नई NAMESPACE फाइल उत्पन्न करेगा

* ** आर स्रोत फ़ाइल के roxygen2 दस्तावेज़ अनुभाग में सुनिश्चित करें कि आपके पास @export टैग है।

10

मुझे लगता है कि devtools ओवरराइटिंग विवरण और NAMESPACE फ़ाइलों से बचने के लिए प्रयास करता है जो इसे स्वयं उत्पन्न नहीं करते हैं (यदि आपने अपने आर कोड में एम्बेडेड रोक्सीजेन टिप्पणियों का उपयोग करने के बजाय स्वयं को सावधानीपूर्वक टाइप किया है तो एंजस्ट से बचने के लिए)। यह हमेशा संभव नहीं है लेकिन यह कोशिश करता है।

मुख्य तंत्र, जैसा कि मैं इसे समझता हूं, फाइल के शीर्ष पर एक टिप्पणी पोस्ट करना है जब यह फ़ाइल उत्पन्न करता है, और उसके बाद, उस टिप्पणी को देखें (किनारे के चारों ओर मुश्किल बिट्स हैं, उदाहरण के लिए यदि आप @include रों वर्णन फ़ाइल में कोलेट आदेश बनाने के लिए

इस तरह के एक टिप्पणी का एक उदाहरण का उपयोग करें, लेकिन मुझे नहीं लगता कि यहां आपकी समस्या है।)

# Generated by roxygen2 (4.1.0.9001): do not edit by hand 

not generated by ... संदेश है आपको यह सतर्क करते हुए, और आपको devtools पता करने के लिए roxygen2 का उपयोग करने वाला नहीं है आपके लिए NAMESPACE फ़ाइल। आपके पास संभवतः टिप्पणी के बिना उल्लेख किया गया है क्योंकि आपने devtools::create() के बजाय अपना पैकेज शुरू करने के लिए RStudio का उपयोग किया था?

यदि आप अभी NAMESPACE फ़ाइल को हटाते हैं, तो मुझे लगता है कि devtools::document() तब आपके लिए काम करेगा। exportPattern("^[[:alpha:]]+")

फ़ाइल NAMESPACE है:

BTW ऊपर दिए गए उदाहरण कोड लिखने में कोई गलती है

1

इसके अलावा एक बस सब कुछ NAMESPACE से एक पंक्ति हटा सकते हैं और जोड़ सकते हैं छोड़ सकते हैं (आप #' @import ggplo2 बजाय #' @import ggplot2 की है) मैन्युअल रूप से बदला गया, devtools::document() इस फ़ाइल को ओवरराइट करने में विफल रहता है, यही कारण है कि यह पहले की तरह छोड़ देता है। जब आप NAMESPACE फ़ाइल से टेक्स्ट हटाते हैं और इस पंक्ति को सम्मिलित करते हैं, तो devtools::document() सोचता है कि फ़ाइल नई है और इसे ओवरराइट करती है।

+0

क्या आप अपने समाधान को आपके द्वारा प्रदान किए गए समाधान के बारे में थोड़ा और विवरण जोड़कर विस्तारित कर सकते हैं? – abarisone

+0

यदि फ़ाइल NAMESPACE मैन्युअल रूप से बदल दी गई है, तो devtools :: दस्तावेज़() इस फ़ाइल को ओवरराइट करने में विफल रहता है, यही कारण है कि यह पहले की तरह छोड़ देता है। जब आप NAMESPACE फ़ाइल से टेक्स्ट हटाते हैं और इस पंक्ति को सम्मिलित करते हैं, तो devtools :: दस्तावेज़() सोचता है कि फ़ाइल नई है और इसे ओवरराइट करती है। – irudnyts

0

पिछले कुछ उदाहरण मेरे लिए काम नहीं करते थे। अगर मैंने NAMESPACE फ़ाइल हटा दी है तो roxygen शिकायत की गई है कि NAMESPACE नहीं था। यदि मैंने NAMESPACE फ़ाइल को हटा दिया और फिर से बनाया (`स्पर्श के साथ, उदाहरण के लिए RStudio: Building package with roxygen2. Not producing NAMESPACE file) तो roxygen ने शिकायत की कि फ़ाइल roxygen के साथ नहीं बनाई गई थी।

समाधान एक अन्य परियोजना है कि roxygen के साथ बनाया था से एक NAMESPACE फाइल कॉपी किया गया।

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