खोज…


परिचय

यह विषय devtools पैकेज के साथ खरोंच से आर संकुल के निर्माण को कवर करेगा।

टिप्पणियों

  1. पैकेज बनाने के लिए आधिकारिक आर मैनुअल
  2. roxygen2 संदर्भ मैनुअल
  3. devtools संदर्भ मैनुअल

पैकेज बनाना और वितरित करना

यह एक कॉम्पैक्ट गाइड है कि कैसे अपने कोड से जल्दी से एक आर पैकेज बनाएं। जब उपलब्ध हो, तो प्रचलित दस्तावेज़ों को लिंक किया जाना चाहिए और यदि आपको स्थिति का गहन ज्ञान चाहिए तो पढ़ना चाहिए। अधिक संसाधनों के लिए टिप्पणियां देखें।

वह निर्देशिका जहां आपका कोड खड़ा होता है, को ./ रूप में संदर्भित किया जाएगा, और सभी आदेशों को इस फ़ोल्डर में R प्रॉम्प्ट से निष्पादित किया जाना है।


प्रलेखन का निर्माण

आपके कोड के लिए प्रलेखन एक प्रारूप में होना चाहिए जो कि LaTeX के समान है।

हालाँकि, हम प्रक्रिया को सरल बनाने के लिए roxygen नामक उपकरण का उपयोग करेंगे:

install.packages("devtools")
library("devtools")
install.packages("roxygen2")
library("roxygen2")

Roxygen के लिए पूरा मैन पेज यहां उपलब्ध है । यह बहुत हद तक डॉक्सीजन के समान है।

यहाँ कैसे roxygen के साथ एक समारोह दस्तावेज़ के बारे में एक व्यावहारिक नमूना है:

#' Increment a variable.
#'
#' Note that the behavior of this function
#' is undefined if `x` is not of class `numeric`.
#'
#' @export
#' @author  another guy
#' @name    Increment Function
#' @title   increment
#'
#' @param x   Variable to increment
#' @return    `x` incremented of 1
#'
#' @seealso   `other_function`
#'
#' @examples
#' increment(3)
#' > 4
increment <- function(x) {
  return (x+1)
}

और यहाँ परिणाम होगा

यह एक विगनेट बनाने के लिए भी सिफारिश की जाती है (विषय बनाना विगनेट्स देखें ), जो आपके पैकेज के बारे में एक पूर्ण मार्गदर्शिका है।


पैकेज कंकाल का निर्माण

यह मानते हुए कि आपका कोड फाइलों में उदाहरण के लिए लिखा है ./script1.R और ./script2.R , अपने पैकेज की फ़ाइल ट्री बनाने के लिए निम्नलिखित कमांड लॉन्च करें:

package.skeleton(name="MyPackage", code_files=c("script1.R","script2.R"))

फिर ./MyPackage/man/ में सभी फ़ाइलों को ./MyPackage/man/ । अब आपको दस्तावेज़ संकलित करना है:

roxygenize("MyPackage")

आप अपने दस्तावेज़ से R CMD Rd2pdf MyPackage का उपयोग कमांड प्रॉम्प्ट से ./ । में शुरू करते हुए एक संदर्भ पुस्तिका तैयार करें।


पैकेज गुणों का संस्करण

1. पैकेज विवरण

अपनी आवश्यकताओं के अनुसार संशोधित करें। ./MyPackage/DESCRIPTION फ़ील्ड Package , Version , License , Description , Title , Author और Maintainer अनिवार्य हैं, अन्य वैकल्पिक हैं।

अपने पैकेज दूसरों संकुल पर निर्भर करता है, तो उन्हें नाम के एक फ़ील्ड में निर्दिष्ट Depends (आर संस्करण <3.2.0) या Imports (आर संस्करण> 3.2.0)।

2. वैकल्पिक फ़ोल्डर

एक बार जब आप कंकाल का निर्माण शुरू करते हैं, ./MyPackage/ R/ ./MyPackage/ R/ केवल R/ और man/ ./MyPackage/ । हालाँकि, इसमें कुछ अन्य हो सकते हैं:

  • data/ : यहां आप वह डेटा रख सकते हैं जो आपकी लाइब्रेरी को चाहिए और वह कोड नहीं है। इसे .RData एक्सटेंशन के साथ डेटासेट के रूप में सहेजा जाना चाहिए, और आप इसे रनटाइम पर data() और load() साथ लोड कर सकते हैं
  • tests/ : इस फ़ोल्डर में सभी कोड फ़ाइलों को स्थापित समय पर चलाया जाएगा। यदि कोई त्रुटि है, तो स्थापना विफल हो जाएगी।
  • src/ : C / C ++ / फोरट्रान स्रोत फ़ाइलों के लिए Rcpp आपको आवश्यकता है ( Rcpp का उपयोग Rcpp ...)।
  • exec/ : अन्य निष्पादनों के लिए।
  • misc/ : मुश्किल से बाकी सब कुछ के लिए।

अंतिम रूप देना और निर्माण करना

आप हटा सकते हैं ./MyPackage/Read-and-delete-me

जैसा कि अभी है, आपका पैकेज स्थापित होने के लिए तैयार है।

आप इसे devtools::install("MyPackage") साथ स्थापित कर सकते हैं devtools::install("MyPackage")

अपने पैकेज को स्रोत टारबॉल के रूप में बनाने के लिए, आपको कमांड प्रॉम्प्ट से ./ : R CMD build MyPackage करने के लिए, निम्नलिखित कमांड को निष्पादित करने की आवश्यकता है ./


अपने पैकेज का वितरण

जीथब के माध्यम से

बस MyPackage नामक एक नया रिपॉजिटरी बनाएं और MyPackage/ में मास्टर शाखा में सब कुछ अपलोड करें। यहाँ एक उदाहरण है

तब कोई भी आपके पैकेज को gitub से devtools से स्थापित कर सकता है:

install_package("MyPackage", "your_github_usename")

CRAN के माध्यम से

आपके पैकेज को CRAN रिपोजिटरी नीति का पालन करने की आवश्यकता है। इसमें शामिल है, लेकिन यह सीमित नहीं है: आपका पैकेज क्रॉस-प्लेटफ़ॉर्म (कुछ विशेष मामलों को छोड़कर) होना चाहिए, इसे R CMD check टेस्ट पास करना चाहिए।

यहाँ सबमिशन फॉर्म है । आपको स्रोत टारबॉल अपलोड करना होगा।

विगनेट्स बनाना

एक विगनेट आपके पैकेज का एक लंबा-चौड़ा गाइड है। फंक्शन डॉक्यूमेंटेशन बहुत अच्छा है यदि आप उस फ़ंक्शन का नाम जानते हैं जिसकी आपको आवश्यकता है, लेकिन यह अन्यथा बेकार है। एक विगनेट एक पुस्तक अध्याय या एक अकादमिक पेपर की तरह है: यह उस समस्या का वर्णन कर सकता है जिसे आपके पैकेज को हल करने के लिए डिज़ाइन किया गया है, और फिर पाठक को दिखाएं कि इसे कैसे हल किया जाए।

विगनेट्स पूरी तरह से मार्कडाउन में बनाए जाएंगे।

आवश्यकताएँ

  • रमार्कडाउन: install.packages("rmarkdown")
  • Pandoc

विगनेट निर्माण

devtools::use_vignette("MyVignette", "MyPackage")

अब आप अपने ./vignettes/MyVignette.Rmd को ./vignettes/MyVignette.Rmd पर संपादित कर सकते हैं।

आपके विगनेट में पाठ को मार्कडाउन के रूप में स्वरूपित किया गया है।

मूल मार्काडाउन का एकमात्र जोड़, एक टैग है जो R कोड लेता है, इसे चलाता है, आउटपुट कैप्चर करता है, और इसे स्वरूपित Markdown में अनुवाद करता है:

```{r}
# Add two numbers together
add <- function(a, b) a + b
add(10, 20)
```

के रूप में प्रदर्शित करेगा:

# Add two numbers together
add <- function(a, b) a + b
add(10, 20)
## [1] 30

इस प्रकार, आपके द्वारा अपने विगनेट्स में उपयोग किए जाने वाले सभी पैकेजों को ./DESCRIPTION में निर्भरता के रूप में सूचीबद्ध किया जाना चाहिए।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow