2013-04-10 8 views
36

लघु संस्करण: मैं पैकेज stats में Normal के प्रलेखन roxygen का उपयोग कर अनुकरण कर सकते हैं?एकाधिक कार्यों

लंबे संस्करण: मैं एक पैकेज पर काम कर रहा हूं और एक शीर्षक के तहत एकत्र किए गए सामान्य इनपुट/पैरामीटर के साथ कई कार्यों के साथ दस्तावेज़ों को और अधिक पढ़ने योग्य बनाने की कोशिश कर रहा था, जो समूह के लिए एक सामान्य संदर्भ होगा। प्रत्येक फ़ंक्शन अभी भी अंतिम उपयोगकर्ता को स्वतंत्र रूप से उपलब्ध होना चाहिए।

मैंने Normal के लिए प्रलेखन के रूप में प्रेरणा ली जो सामान्य वितरण से संबंधित कई विधियां प्रदान करता है उदा। stats::dnorm()

जब मैं खोज ?dnorm मुझे लगता सहायता अनुभाग के नाम Normal भी Normal हालांकि एक निर्यात समारोह या वस्तु होने के लिए प्रकट नहीं होता है।

क्या मैं कोशिश की है डाल रहा है funs.R में निम्नलिखित:

##' @rdname funs 
##' @name funs 
##' @aliases sum1 
##' @aliases prod1 
##' @title Two functions 
##' @param x X 
##' @param y Y 
##' @return sum1 returns x+y 
##' \cr 
##' prod1 returns x*y 
##' @examples 
##' sum1(3,4) 
##' prod1(3,4) 
##' @export 
sum1 <- function(x,y) x+y 
##' @export 
##' @rdname funs 
prod1 <- function(x,y) x*y 

मैं तो ऊपर पर roxygen2 चलाते हैं। कठिनाई यह है कि इस न्यूनतम पैकेज पर R CMD check चलाते समय, यह पाया जाता है कि पैकेज को undefined exports: funs के रूप में लोड नहीं किया जा सकता है। यदि मैं ##' @name funs लाइन को हटाता हूं तो पैकेज R CMD check पास करता है लेकिन सहायता अनुभाग का नाम funs के बजाय sum1 है। अगर मैं जोड़ने के उदाहरण अनुभाग के नीचे निम्नलिखित:

##' @export 
funs <- function(x) x 

यह गुजरता है और मैं देख सकता हूँ मदद स्वरूपित के रूप में मैं चाहूँगा, लेकिन मैं एक अर्थहीन समारोह निर्यात कर रहा हूँ के क्रम में सही ढंग से प्रदर्शित करने के लिए नाम मिलता है।

मैंने यह देखने के लिए stats के लिए स्रोत सहायता फ़ाइलों को देखने का प्रयास किया, लेकिन यह .Rdx प्रारूप में है जो मुझे यकीन नहीं है कि मुझे कैसे प्रदर्शित करना है।

इसके अलावा, संबंधित नोट पर, Normal है?

require(stats) 
getAnywhere("Normal") 
> no object named 'Normal' was found 

अद्यतन:

@TylerRinker - मुझे डर है कि यह पहली बात मैं कोशिश की थी हूँ। यह एक .Rd फ़ाइल में कार्यों को जोड़ती है लेकिन जुड़े मदद के नाम पर पहले समारोह है, जिनमें से नाम के समान है कि मैं क्या से बचने के लिए कोशिश कर रहा था:

##' sum 
##' gives the sum 
##' @param x X 
##' @param y Y 
##' @return sum1 returns x+y 
##' @examples 
##' sum1(3,4) 
##' @rdname funs 
##' @export 
sum1 <- function(x,y) x+y 
##' product 
##' gives the product 
##' @return prod1 returns x*y 
##' @examples 
##' prod1(3,4) 
##' @rdname funs 
##' @export 
prod1 <- function(x,y) x*y 

@Andrie - इस समाधान बिल्कुल का कारण बनता है एक ही कठिनाई, सहायता का नाम पहले समारोह के समान है।

शायद यह संभव नहीं है ...

+1

मैं गलत हो सकता हूं लेकिन इस तरह मैं इसे संभालता हूं: https://github.com/trinker/reports/blob/master/R/GQ.R –

+1

'## '@name funs' निकालें और इसे काम करना चाहिए (मुझे लगता है)। – Andrie

+5

[हैडली] से प्रासंगिक पोस्ट (http://r-pkgs.had.co.nz/man.html#dry2), '@ descriptionIn' विकल्प का उपयोग करें। भविष्य के Googlers के लिए – zx8754

उत्तर

18

यह सबसे अच्छा समाधान का मैंने पाया है, लेकिन अगर कुछ बेहतर साथ आता है स्वीकार किए जाते हैं जवाब बदलने के लिए बहुत खुशी होगी ...

##' @name funs 
##' @aliases sum1 
##' @aliases prod1 
##' 
##' @title Two functions of x and y 
##' 
##' @param x =X 
##' @param y =Y 
##' 
##' @note \code{funs} is a generic name for the functions documented. 
##' \cr 
##' If called, \code{funs} returns its own arguments. 
##' 
##' @rdname funs 
##' @export 
funs <- function(x,y) {identity(c(x,y))} 
##' 
##' @rdname funs 
##' @return \code{sum1(x,y)} returns x+y 
##' @examples 
##' sum1(3,4) 
##' @export 
sum1 <- function(x,y) x+y 
##' 
##' @rdname funs 
##' @return \code{prod1(x,y)} returns x*y 
##' @examples 
##' prod1(3,4) 
##' @export 
prod1 <- function(x,y) x*y 

ध्यान दें कि स्वरूपण आदेश में इस a reportable bug बनाने से बचने के लिए @usage से दूर रहता है।

मैं देख सकता हूं कि यह github पर बेहतर तरीके से कैसे संबोधित किया जा सकता है।

एक बेहतर समाधान है जो उपयोग करता है @usage निम्न पंक्ति जोड़ने के लिए है: हालांकि मुझे पता नहीं कम करने के लिए कोशिश कर रहा हूँ

##' @rdname funs 
##' @export 

का पहला प्रयोग के बाद

##' @usage funs(x,y) A nominal function of x and y 

। चेतावनी विशेष folloiwng में, क्रम में अधिकार है कि हो सकता है शांत करने के लिए R CMD check द्वारा फेंका का:

Functions with \usage entries need to have the appropriate \alias 
    entries, and all their arguments documented. 
    The \usage entries must correspond to syntactically valid R code. 

यह पिछले @usage के लिए दस्तावेज की मेरी पढ़ने की एक त्रुटि हो सकती है।

बहुत धन्यवाद।

+2

देखें मुझे नहीं लगता कि आपको @aliases की आवश्यकता है, जिन्हें स्वचालित रूप से @rdname मज़े के साथ जोड़ा जाएगा। दूसरा, @usage में केवल आर कोड होना चाहिए, इसलिए यदि आप कोई टिप्पणी जोड़ना चाहते हैं, तो उसे टिप्पणी के बाद रखें ### @usage funs (x, y) # x और y' – Calimo

+0

का नाममात्र फ़ंक्शन मैं देखता हूं कि यह कैसे कार्यों के लिए काम करता है। डेटा सेट के लिए इसे कैसे संशोधित किया जाएगा? – jebyrnes

15

जहां तक ​​मैं समझता हूं, आपके आरडी फ़ाइल में 3 नामों का दस्तावेज करने का एकमात्र तरीका है जैसा कि आपने किया था, 3 वास्तविक वस्तुओं को दस्तावेज करना है। लेकिन चाल है: उनमें से एक NULL हो सकता है और निर्यात नहीं किया जा सकता है!

##' @name funs 
##' @rdname funs 
##' 
##' @title Two functions of sum1 and prod1 
##' 
##' @param x =X 
##' @param y =Y 
##' 
##' @return x*y (prod1) or x+y (sum1). 
NULL 

##' @rdname funs 
##' @examples 
##' sum1(3,4) 
##' @export 
sum1 <- function(x,y) x+y 

##' @rdname funs 
##' @examples 
##' prod1(3,4) 
##' @export 
prod1 <- function(x,y) x*y 

यह काफी हैकी दिखता है, लेकिन यह काम करता है।

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