R Language
devtools로 패키지 만들기
수색…
소개
이 주제에서는 devtools 패키지를 사용하여 처음부터 R 패키지를 작성하는 방법에 대해 설명합니다.
비고
패키지 생성 및 배포
이 코드는 코드에서 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
, Author
및 Maintainer
는 필수이고 다른 필드는 선택 사항입니다.
패키지가 다른 패키지에 종속 된 경우 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
의존성으로 나열되어야합니다.