수색…


소개

이 주제에서는 devtools 패키지를 사용하여 처음부터 R 패키지를 작성하는 방법에 대해 설명합니다.

비고

  1. 패키지 생성을위한 공식 R 매뉴얼
  2. roxygen2 참조 설명서
  3. devtools 참조 설명서

패키지 생성 및 배포

이 코드는 코드에서 R 패키지를 빠르게 만드는 방법에 대한 간략한 안내서 입니다. 완전한 문서는 가능한 경우 링크되며 상황에 대한 더 깊은 지식을 원할 경우 읽어야합니다. 자세한 내용은 설명 을 참조하십시오.

코드가있는 디렉토리는 ./ 로 표시되며 모든 명령은이 폴더의 R 프롬프트에서 실행됩니다.


문서 작성

코드에 대한 문서는 LaTeX와 매우 유사한 형식이어야합니다.

그러나 프로세스를 단순화하기 위해 roxygen 이라는 도구를 사용합니다.

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

roxygen의 전체 맨 페이지는 여기에서 볼 수 있습니다 . 그것은 doxygen 과 매우 유사합니다.

다음은 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)
}

그리고 여기에 결과가있을 것 입니다.

또한 패키지에 관한 전체 안내서 인 비 네트 ( vignettes 작성 주제 참조)를 작성 하는 것이 좋습니다.


패키지 골격의 건설

코드가 ./script1.R./script2.R 파일에 작성되었다고 가정하면 패키지의 파일 트리를 만들려면 다음 명령을 실행하십시오.

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

그런 다음 ./MyPackage/man/ 모든 파일을 삭제하십시오. 이제 문서를 컴파일해야합니다.

roxygenize("MyPackage")

./ 에서 시작한 명령 프롬프트 에서 R CMD Rd2pdf MyPackage 를 사용하여 설명서에서 참조 설명서를 생성해야합니다.


패키지 속성의 버전

1. 패키지 설명

./MyPackage/DESCRIPTION 을 필요에 따라 수정하십시오. Package , Version , License , Description , Title , AuthorMaintainer 는 필수이고 다른 필드는 선택 사항입니다.

패키지가 다른 패키지에 종속 된 경우 Depends (R version <3.2.0) 또는 Imports (R version> 3.2.0)라는 필드에 지정하십시오.

2. 옵션 폴더

일단 뼈대 빌드를 시작하면 ./MyPackage/ 에는 R/man/ subfolders 만 있습니다. 그러나, 그것은 다른 것들을 가질 수 있습니다 :

  • data/ : 여기서 라이브러리가 필요로하는 코드가 아닌 데이터를 배치 할 수 있습니다. .RData 확장명을 가진 데이터 집합으로 저장해야하며 런타임에 data()load() 하여 load() 할 수 있습니다.
  • tests/ :이 폴더의 모든 코드 파일은 설치시 실행됩니다. 오류가 있으면 설치가 실패합니다.
  • src/ : 필요한 C / C ++ / Fortran 소스 파일 ( Rcpp ... 사용).
  • exec/ : 다른 실행 파일.
  • misc/ : 거의 모든 것.

완성 및 빌드

./MyPackage/Read-and-delete-me 을 삭제할 수 있습니다.

지금과 같이 패키지를 설치할 준비가되었습니다.

devtools::install("MyPackage") 하여 설치할 수 있습니다.

패키지를 소스 타르볼로 빌드하려면 ./명령 프롬프트 에서 다음 명령을 실행해야합니다. R CMD build MyPackage


패키지 배포

Github 통해

간단히 myPackage에라는 새로운 저장소를 생성하고 모든 것을 업로드 MyPackage/ 마스터 브랜치. 다음은 그 예 입니다.

그렇다면 누구나 devutools로 github에서 패키지를 설치할 수 있습니다 :

install_package("MyPackage", "your_github_usename")

CRAN을 통해

패키지가 CRAN 저장소 정책 을 준수해야합니다. 다음을 포함하되 이에 국한되지는 않습니다 : 귀하의 패키지는 크로스 플랫폼이어야합니다 (아주 특별한 경우는 제외). R CMD check 테스트를 통과해야합니다.

여기에 제출 양식이 있습니다. 소스 타르볼을 업로드해야합니다.

비 네트 만들기

비 네트 (vignette)는 패키지에 대한 긴 안내서입니다. 함수 문서는 필요한 함수의 이름을 알고 있으면 훌륭하지만, 그렇지 않으면 쓸모가 없다. 비 네트 (vignette)는 책 장이나 학술지와 같습니다. 패키지가 해결하도록 설계된 문제를 설명하고 독자에게 해결 방법을 보여줄 수 있습니다.

Vignettes는 완전히 markdown에서 만들어집니다.

요구 사항

  • Rmarkdown : install.packages("rmarkdown")
  • 판독

비 네트 제작

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

./vignettes/MyVignette.Rmd 에서 비 네트를 편집 할 수 있습니다.

비 네트의 텍스트는 Markdown 형식입니다.

원래의 Markdown에 추가 된 것은 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