का उपयोग करते समय S4 विधियों को लोड करने के क्रम में निर्दिष्ट करने के लिए कैसे करें, मैं पहले से ही कई बार समस्या का सामना कर रहा हूं।roxygen2
#' the class classA
#'
#' This is a class A blabla
#' \section{Slots}{\describe{\item{\code{A}}{a Character}}}
#' @ name classA
#' @rdname classA
#' @exportClass classA
setClass("classA",representation(A="character"))
और classB.R
#' the class classB
#'
#' This is a class B blabla
#' \section{Slots}{\describe{\item{\code{B}}{an object of class A}}}
#' @ name classB
#' @rdname classB
#' @exportClass classB
setClass("classB",representation(B="classA"))
मैं मानना इन फ़ाइलों roxygen2
द्वारा वर्णमाला के क्रम में पढ़ रहे थे, लेकिन यह है कि:
आप दो वर्गों, classA
और classB
निम्न फ़ाइलें classA.R
में वर्णित है कहो ऐसा नहीं है।
roxygenize("./myExample")
Error in getClass(Class, where = topenv(parent.frame())) :
"ClassA" is not a defined class
कैसे मुझे यकीन है कि roxygenize()
जानता है जो क्रम में फ़ाइलों को पढ़ने के लिए कर सकते हैं, यानी कि जो वर्ग परिभाषा अन्य से पहले पढ़ा जाना चाहिए: यदि मैं पैकेज बनाने की कोशिश, मैं निम्नलिखित त्रुटि आ सकती है?
नोट: मुझे पता है कि मैंने अपने स्वयं के प्रश्न का उत्तर दिया। ऐसा इसलिए है क्योंकि मैं अक्सर इस समस्या में भाग गया, और roxygen2
के कोड को देखने के बाद ऐसा करने का उचित तरीका महसूस किया। तो संदर्भ के लिए, यहां मेरे निष्कर्ष हैं।
?collate_roclet
में वर्णित है, आप जो वर्ग जो पहले पढ़ा जाना चाहिए निर्दिष्ट करने के लिए @include टैग का उपयोग कर सकते हैं:
मुझे लगता है कि आपने '@ शामिल' टैग को याद किया है ... – hadley
@ हैडली जैसा कि मैंने अपने प्रश्न में लिखा था, मैंने '@ शामिल' टैग की कोशिश की, और उसने विभिन्न वर्गों पर सहायता फ़ाइलों को भी विलय कर दिया (जो था मेरा इरादा नहीं)। यह कोलेट फ़ील्ड का उपयोग करके ठीक काम करता है, लेकिन मुझे उम्मीद है कि आपको रॉक्सीजन के अगले संस्करण में इसके लिए एक सुरुचिपूर्ण समाधान शामिल करने के लिए कुछ समय और प्रेरणा मिलेगी। –
'शामिल' को कोलेट से अलग कुछ भी नहीं बदला जाना चाहिए। क्या आप एक न्यूनतम प्रतिलिपि उदाहरण प्रदान कर सकते हैं? – hadley