devtools, testthat 및 roxygen2를 사용하여 R 패키지를 개발하고 있습니다. 데이터 폴더 (foo.txt 및 bar.csv)에 몇 가지 데이터 세트가 있습니다.test 또는 run_examples()에서 R 패키지 데이터를 사용할 수 있습니까?
내 파일 구조는 다음과 같습니다
#' 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 '및'bar '를 사용하여 문서 예제 및 단위 테스트를 수행합니다. 나는 같이하는 문서의 예제를 싶습니다
data(foo)
data(bar)
expect_that(foo$col[1], equals(bar$col[1]))
을 그리고 :
#' @examples
#' data(foo)
#' functionThatUsesFoo(foo)
예를 들어, 나는 호출하여 내 testthat 테스트에서 이러한 데이터 세트를 사용하고 싶습니다
패키지를 개발하는 동안 데이터 (foo)를 호출하려고하면 "data set 'foo'not found"오류가 발생합니다. 그러나 패키지를 빌드하고 설치 한 다음로드하면 테스트 및 예제가 작동합니다.
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)}
그리고 테스트에서
, 내 로컬 컴퓨터에 특정 경로를 사용하여 데이터를 미리로드 :내 현재 작업 차선책은 예제를 실행하지 않을 수 있습니다 이상하게 보이지 않습니다. 특히 다른 사람들과 협력하고 있기 때문에 모든 공동 작업자에게 'foo'와 'bar'에 대한 동일한 전체 경로가 있어야합니다. 또한 패키지가 설치되면 문서를 실행할 수없는 것처럼 보입니다.
제안 사항? 감사합니다.
data()를 사용하지 마십시오. 게으른 로딩에만 의존하십시오. – hadley
마지막 코멘트에 대해 죄송합니다. 아직이 형식을 사용하고 있습니다. 고맙습니다 @ 할리. 그것은 테스트 테스트에 도움이되었습니다. 나는 데이터 세트를 활용할 수있는 문서 (roxygen2 사용)에서 예제를 만드는 방법에 관해서도 여전히 실망하고있다. – JPMac
데이터를'.Rdata' 파일로 변환하면,'load_all'이 그것을로드합니다. – hadley