कैसे roxygen2 का उपयोग कर एक उदाहरण नहीं चलाने के लिए?


93

मैं अभी एक जियोकोडिंग फ़ंक्शन लिख रहा हूं जो बिंग मैप्स कुंजी पर निर्भर करता है। जाहिर है कि मैं उन्हें प्रकाशित नहीं करना चाहता, और उदाहरण एक के बिना विफल हो जाते हैं।

मैं उपयोगकर्ताओं को मैन्युअल रूप से चलाने के लिए एक उदाहरण कैसे शामिल करूं, लेकिन क्या इसे निष्पादित नहीं किया गया है R CMD check?

जवाबों:


147

उपयोग \dontrun{}

#'@examples
#'\dontrun{
#'geocode("3817 Spruce St, Philadelphia, PA 19104")
#'geocode("Philadelphia, PA")
#'dat <- data.frame(value=runif(3),address=c("3817 Spruce St, Philadelphia, PA 19104","Philadelphia, PA","Neverneverland"))
#'geocode(dat)
#'}

2
यह दस्तावेज़ ?exampleऔर लेखन आर एक्सटेंशन्स
GSee

2
@ फिर भी, मुझे विश्वास है कि टैग roxygen2बनाया गया है @example, इसलिए मुझे लगता है कि यह एक roxygen2समस्या है। मुझे नहीं लगता कि \example{}यह वैध है - क्रैन .r
project.org/

2
विषय शीर्षक से देखते हुए, सवाल roxygen2 सिंटैक्स के बारे में है और इसके बारे में नहीं है।
जेरोइन

जवाब के लिए धन्यवाद। यह मेरे लिए पहले काम नहीं करता था क्योंकि मैं @exampleइसके बजाय उपयोग कर रहा था @examples। दोनों टैग RStudio ऑटो-कम्प्लीट में आते हैं। अब मै खुश हु।
पॉल रूजियक्स

5
मुझे लगता है कि जो पूछा जा रहा है, उसके लिए सही जवाब नॉट्रेस्ट है और न ही डॉटरन। देखें? उदाहरण और stackoverflow.com/questions/12038160/… । यह भी देखें cran.r-project.org/web/packages/roxygen2/vignettes/rd.html
जूलियन कार्ल

33

आप \donttest{}अपने उदाहरण के लिए उपयोग कर सकते हैं । स्निपेट आपके प्रलेखन में प्रदान किया जाएगा, लेकिन आर सीएमडी चेक के साथ परीक्षण नहीं किया जाएगा।

अधिक जानकारी के लिए -> ?example

#' @example
\donttest{
    2^2
    }

जब आप दौड़ेंगे तो यह 2 ^ 2 नहीं चलेगा devtools::check()

जज करने से पहले खुद इसकी जांच करें। :)


13
ऐसा लगता है कि यह न तो उत्तर के रूप में स्वीकार किया जाना चाहिए, न ही डॉ। उदाहरण से 'नॉटेस्टेस्ट कोड को कोड करता है जिसे आम तौर पर चलाया जाना चाहिए, लेकिन पैकेज की जाँच के दौरान नहीं।' जबकि 'नॉट्रन कोड को संलग्न करता है जिसे चलाया नहीं जाना चाहिए।' मुझे क्रैन के रखवालों द्वारा भी नॉट्रन से नॉटेस्टेस्ट पर स्विच करने के लिए एक टिप्पणी मिली।
जूलियन कार्ल

3
@JulianKarls से पूरी तरह सहमत हैं। CRAN अनुरक्षकों से एक ही प्रतिक्रिया मिली।
डेविड

9

उन लोगों के लिए जो टैग के @example path/to/example.Rबजाय उपयोग कर रहे हैं @examplesआप फ़ाइल \dontrunमें सीधे पर्यावरण का उपयोग कर सकते हैं example.R। उदाहरण के लिए

# example.R
\dontrun{
# this is a long running example
for(i in seq(1, 1e5)) { lm(mpg ~ wt, data = mtcars) }
}

# some other shorter example
2 + 2

1
यह मेरे लिए काम नहीं करता है (विन 10, 64 बिट, आर संस्करण 3.5.0 पर चल रहा है)
जेबीजे

2

अरी, मैं भी roxygen2 (संस्करण 4.1.0) का उपयोग करता हूं। वास्तविक भाग की शुरुआत तक मेरे roxygen2 मार्क-अप का मेरे फ़ंक्शन (gctemplate) परिभाषा में अंत है।

#' @examples
#' ## List all G-causalities in a VAR system of 5 variables that will be searched in the pattern of 1 
#' ## causer (like-independent) variable and 2 like-dependents conditional on 5-(1+2)=2 of the remaining 
#' ## variable(s) in the system. Variables are assigned to numbers 1 to nvars. 
#' ## "1 2 5 3 4" in the resulting line of gctemplate is to indicate the 
#' ## (conditonal, partial, etc.) G-causality from variable 1 to variables 2 and 5 
#' ## conditonal on variables 3 and 4.
#' # gctemplate(5,1,2)
#' ## The number of all G-causalities to be searched in the above pattern.
#' #dim(gctemplate(5,1,2))[[1]]
#' @importFrom combinat combn
#' @export
gctemplate <- function(nvars, ncausers, ndependents){
...

मुझे पता है कि जीएसई का डिटरन विधि है।
मेरी तकनीक में, संख्यात्मक उदाहरण और संख्यात्मक उदाहरण की व्याख्या करने वाले पाठ दोनों टिप्पणियाँ हैं। मैं इन दोनों के बीच अंतर करने के लिए इंडेंटेशन का उपयोग करता हूं; सूचना "#" के बाद क्रमशः 1 तेज और 2 शार्प हैं। मैं हमेशा अपने पैकेजों में उपरोक्त "# # # # / #" # तकनीक का उपयोग करता हूं। जब भी वह फ़ंक्शन का परीक्षण करना चाहता है, तब उपयोगकर्ता को कॉपी-पेस्ट ऑपरेशन के लिए छोड़ दिया जाता है। यह तकनीक है - मेरे अनुसार - सॉफ्टवेयर कोडिंग दर्शन की शास्त्रीय टिप्पणी बमबारी के साथ और अधिक समानांतर।


14
यदि आप उपयोग करते हैं dontrun{}, तो उपयोगकर्ता कॉल कर सकता है example(myFunction, run.dontrun=TRUE), जबकि यदि आप केवल उदाहरणों पर टिप्पणी करते हैं, तो आपके पास उदाहरणों को कॉपी या पेस्ट करने के अलावा अन्य चलाने का कोई तरीका नहीं है।
जीएसआई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.