मैं devtools, testthat, और roxygen2 का उपयोग कर आर पैकेज विकसित करने पर काम कर रहा हूं। मेरे पास डेटा फ़ोल्डर (foo.txt और bar.csv) में कुछ डेटा सेट हैं।क्या टेस्टथैट परीक्षण या run_examples() में आर पैकेज डेटा का उपयोग करना संभव है?
मेरे फ़ाइल संरचना इस तरह दिखता है:
#' Foo data
#'
#' Sample foo data
#'
#' @name foo
#' @docType data
NULL
#' Bar data
#'
#' Sample bar data
#'
#' @name bar
#' @docType data
NULL
मैं में 'डेटा का उपयोग करना चाहते हैं:
/ mypackage
/data
* foo.txt, bar.csv
/inst
/tests
* run-all.R, test_1.R
/man
/R
मैं यकीन है कि' foo 'और' बार 'सही ढंग से प्रलेखित कर रहा हूँ मेरे प्रलेखन उदाहरणों और यूनिट परीक्षणों में foo 'और' bar '।
उदाहरण के लिए, मैं फोन करके मेरी testthat परीक्षण में इन डेटा सेट उपयोग करना चाहते हैं:
data(foo)
data(bar)
expect_that(foo$col[1], equals(bar$col[1]))
और, मैं इस तरह देखने के लिए दस्तावेज में उदाहरण चाहते हैं:
#' @examples
#' data(foo)
#' functionThatUsesFoo(foo)
यदि मैं पैकेज को विकसित करते समय डेटा (foo) को कॉल करने का प्रयास करता हूं, तो मुझे त्रुटि "डेटा सेट 'foo' नहीं मिला" मिलता है। हालांकि, अगर मैं पैकेज बनाता हूं, इसे इंस्टॉल करता हूं, और इसे लोड करता हूं - तो मैं परीक्षण और उदाहरण काम कर सकता हूं।
foo <- read.delim(pathToFoo, sep="\t", fill = TRUE, comment.char="#")
bar <- read.delim(pathToBar, sep=";", fill = TRUE, comment.char="#"
expect_that(foo$col[1], equals(bar$col[1]))
यह:
#' @examples
#' \dontrun{data(foo)}
#' \dontrun{functionThatUsesFoo(foo)}
और परीक्षणों में, एक रास्ता अपने स्थानीय कंप्यूटर के लिए विशिष्ट का उपयोग कर डेटा पूर्व लोड:
मेरे वर्तमान कार्य arounds उदाहरण नहीं चलाने के लिए कर रहे हैं आदर्श प्रतीत नहीं होता - खासकर जब से मैं दूसरों के साथ सहयोग कर रहा हूं - सभी सहयोगियों को 'foo' और 'bar' के समान पथ रखने की आवश्यकता होती है। इसके अलावा, प्रलेखन में उदाहरण दिखते हैं कि वे नहीं चल सकते हैं, भले ही पैकेज स्थापित हो, वे कर सकते हैं।
कोई सुझाव? बहुत धन्यवाद।
डेटा() का उपयोग न करें। आलसी लोडिंग पर भरोसा करें। – hadley
उस अंतिम टिप्पणी के बारे में क्षमा करें, मैं अभी भी इस स्वरूपण के लिए उपयोग कर रहा हूं। धन्यवाद @ हैडली। इससे टेस्टथैट परीक्षणों में मदद मिली। मुझे अभी भी एक नुकसान हुआ है कि दस्तावेज में एक उदाहरण कैसे बनाया जाए (roxygen2 का उपयोग करके) जो मुझे डेटा सेट का लाभ लेने देता है। – JPMac
यदि आप डेटा को '.Rdata' फ़ाइलों में कनवर्ट करते हैं, तो' load_all' आपके लिए लोड करेगा। – hadley