2012-01-15 27 views
6

के साथ सेटर फ़ंक्शंस दस्तावेज मेरे पास एक ऐसा फ़ंक्शन है जो किसी भी आर ऑब्जेक्ट के लिए अद्वितीय attr विज्ञापनों से अधिक कुछ नहीं करता है। बेस डेमो:roxygen

#' Setter function 
#' @param x an R object 
#' @param value a character value to set 
#' @export 
`foo<-` <- function(x, value){ 
    attr(x, 'foo') <- value 
    return(x) 
} 

यह एक अच्छा रोड फ़ाइल पैदा करने के अलावा एक आकर्षण की तरह काम करता है, प्रासंगिक हिस्सा:

\usage{ 
    foo(var, value) <- value 
} 

और निश्चित रूप से यह एक चेतावनी से चलाता है, जबकि R CMD check चल के रूप में यह foo(var) <- value होना चाहिए।

किसी भी संकेत की वास्तव में सराहना की जाएगी!


अद्यतन: धन्यवाद richierocks को ऐसा लगता है वहाँ एक fix

+0

क्या आप roxygen या roxygen2 का उपयोग कर रहे हैं? – hadley

+0

@ हैडली: roxygen2, अधिक ध्यान देने के लिए बस roxygen टैग भी जोड़ा गया। – daroczig

+0

आप किस संस्करण का उपयोग कर रहे हैं? Roxygen2 को 2.2 – hadley

उत्तर

7

आप roxygen टैग @usage

यहाँ मेरी संकुल में से एक से एक उदाहरण है का उपयोग कर सकते हैं:

#' @rdname pattern 
#' @usage pattern(x) <- value 
#' @param value New value 
#' @export pattern<- 
"pattern<-" <- function(x, value=c("^", "($|(_\\d+(_\\d+)*)$)")){ 
    attr(x, "pattern") <- value 
    x 
} 

इसके परिणामस्वरूप मेरे वांछित दस्तावेज:

Usage 

    pattern(x) <- value 

Arguments 
x surveydata object 

value New value 
+0

एक आकर्षण की तरह काम करता है, धन्यवाद @ एंड्री 'पर ध्यान देने के लिए @Andrie - मैं बस इस उपयोगी टैग का कोई ध्यान नहीं दे सकता। – daroczig

+1

ऐसा इसलिए है क्योंकि आपको कभी भी '@ उपयोग' का उपयोग करने की आवश्यकता नहीं है - जब भी आप ऐसा करते हैं तो यह roxygen2 में एक बग है और आपको एक बग रिपोर्ट दर्ज करनी चाहिए। – hadley

+0

धन्यवाद @ हैडली, मैंने [उचित मुद्दे] पर एक टिप्पणी जोड़ा है (https://github.com/klutometis/roxygen/issues/38#issuecomment-3516591)। – daroczig