2011-07-20 20 views
6

मैं संदर्भ कक्षा के सदस्य कार्यों के उपयोग को कैसे दस्तावेज़ित करूं?मैं आर संदर्भ कक्षा कैसे दस्तावेज करूं?

अगर मैं एक \usage ब्लॉक के साथ एक Rd फ़ाइल में लिखने, मैं कैसे से बचने करते WARNING

Functions/methods with usage in documentation object 'XmlDoc' but not in code: 
    $ new 

मैं \usage ब्लॉक मुझे तरह बातें लिखने की अनुमति के लिए उम्मीद थी:

obj <- ClassName$new(par1, par2, ...) 
obj$method1(oth1, ...) 

और तो मैं \arguments ब्लॉक में पैरामीटर दस्तावेज करता हूं।

मैं ऐसा करते हैं, R CMD check

Assignments in \usage in documentation object 'ClassName': 

साथ शिकायत करता है और कोड वस्तुओं मैं दस्तावेज़ की जरूरत के रूप में तरीकों को नहीं पहचानता।

अब के रूप में, मैं \usage ब्लॉक के बिना Rd फ़ाइलें लिख रहा हूँ और \examples ब्लॉक में ऊपर कोड लिखने, लेकिन फिर मैं तर्क दस्तावेज़ के लिए कोई जगह नहीं और इस तरह से check बहुत वास्तव में जांच करने के लिए थोड़ा है की है। चूंकि मैं इससे संतुष्ट नहीं हूं, अब मैं समुदाय को वर्तमान सामान्य अभ्यास के बारे में पूछ रहा हूं।

+0

मुझे नहीं पता कि यह संदर्भ कक्षाओं का भी मामला है, लेकिन एस 3 कक्षाएं आप इस समस्या को हल करने के लिए '\ alias' का उपयोग करेंगे। – Andrie

+0

ऐसा नहीं है कि उपयोग ब्लॉक दुर्भाग्यवश कैसे काम करते हैं। क्या आपने अंतर्निहित संदर्भ वर्ग दस्तावेज़ के बारे में मदद पढ़ी है? – hadley

+0

@ हैडली: मैंने सोचा कि मेरे पास था, लेकिन जाहिर है कि मैंने '\ S4method' आइटम चीज़ को याद किया। आप किस दस्तावेज का संदर्भ लेते हैं, इसका वर्णन करता है? – mariotomo

उत्तर

5

मैं अगर यह सही तरीका है पता नहीं है, लेकिन क्या मेरे द्वारा की गई एक तरीके अनुभाग के लिए और फिर एक इंटीरियर वर्णन में विधि दस्तावेज़ डाल है।

+0

ठीक है, लेकिन फिर अधिक सटीक: '\ उपयोग' अनुभाग के अंदर, मैं' \ S4method' प्रविष्टियां जोड़ सकता हूं। प्रत्येक S4method I दस्तावेज़ के लिए मुझे एक '\ alias' प्रविष्टि जोड़ने की आवश्यकता है। '\ alias' में प्रविष्टियों को पैरामीटर की सूची की आवश्यकता नहीं है। – mariotomo

+0

यदि मैं आपको सही समझता हूं तो आप सही हैं। एक विधि "foo" के लिए, मैं "foo" और "foo" के लिए उपनाम करता हूं।क्लास-विधि "जहां foo विधि का नाम है और कक्षा कक्षा का नाम है। फिर, मैं यह नहीं कह सकता कि यह सही तरीका है, मैंने उन्हें कैसे किया है। – geoffjentry

+0

जेफ, मेरा दूसरा उत्तर जांचें, क्या आप यह भी मेल खाते हैं कि आप क्या कर रहे हैं? – mariotomo

4

यदि मैं सही ढंग से समझ गया, संदर्भ कक्षा विधियों एस 4 विधियां हैं, इसलिए documenting S4 classes and methods लागू होता है।

इस उत्तर को थोड़ा और अधिक निहित करने के लिए, मैं logging.oo पैकेज में Logger कक्षा के मामले में क्या कर रहा हूं।

यह कोड है जिसे मैं दस्तावेज करना चाहता था, कुछ omissis [...] के साथ।

Logger <- setRefClass("Logger", 
         fields=list(name = "character"), 
         methods=list(
         setLevel = function(newLevel) { [...] }, 
         getLevel = function() { [...] }, 
         addHandler = function(...) { [...] }, 

इस .Rd फ़ाइल (फ़ाइलें) की इसी सामग्री है:

\alias{\S4method{new}{Logger}} 
\alias{\S4method{setLevel}{Logger}} 
\alias{\S4method{getLevel}{Logger}} 
\alias{\S4method{addHandler}{Logger}} 
[...] 
\usage{ 
\S4method{new}{Logger}(name) 
\S4method{setLevel}{Logger}(newLevel) 
\S4method{getLevel}{Logger}() 
\S4method{addHandler}{Logger}(...) 

जबकि NAMESPACE फ़ाइल मैं बस से संकेत मिलता है मैं लॉगर वर्ग निर्यात कर रहा हूँ में, मैं निर्दिष्ट नहीं करते हैं अपने विधियों: सभी स्वचालित रूप से निर्यात कर रहे हैं।

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