R package 만들기 2
License 추가하기
패키지의 License는 다음의 함수를 사용하여 생성할 수 있습니다. 여기서는 흔하게 사용하는 MIT License를 사용해보겠습니다.
usethis::use_mit_license()
✓ Setting License field in DESCRIPTION to 'MIT + file LICENSE'
✓ Writing 'LICENSE'
✓ Writing 'LICENSE.md'
✓ Adding '^LICENSE\\.md$' to '.Rbuildignore'
R 함수 추가하기
이제 R package에 포함하고자 하는 함수를 생성해보겠습니다.
우선 다음의 코드로 R/my_Rfunction.R
파일을 생성할 수 있습니다.
usethis::use_r("my_Rfunction")
✓ Setting active project to '/Users/hyunsung/Desktop/Rproject/fda.manifold'
• Modify 'R/my_Rfunction.R'
• Call `use_test()` to create a matching test file
이제 R/my_Rfunction.R
파일을 열어서 다음의 내용을 입력해줍니다.
벡터를 받아와서 결측값을 제외하여 합하는 add()
라는 함수를 만들었는데요.
패키지를 만들 때에 주의할 점으로 base
함수가 아닌 다른 패키지에 포함되어 있는 함수를 사용할 경우에는 패키지명::함수
와 같은 방식으로 사용해야만 합니다.
여기서는 stats
패키지에 있는 na.omit()
함수를 사용하기 위해 stats::na.omit()
과 같이 입력해주었습니다.
물론 패키지 이름을 생략하여 사용할 수 있는 방법이 있긴 하지만, 그보다는 작업시 다른 패키지 안의 같은 이름을 가진 함수끼리의 충돌을 방지하는 차원에서 이러한 방식을 추천드립니다.
#' 함수 이름 (Title)
#'
#' 함수 설명 (Description)
#' 여러 줄로도 적을 수 있음
#'
#' @param x 함수의 input parameter
#' @export
add <- function(x) {
sum(stats::na.omit(x))
}
#'
로 시작되는 부분은 함수의 설명을 적어주는 부분인데요. (이는 roxygen2
라는 패키지를 통해 변환해줍니다.)
첫 번째 줄에는 함수의 이름(Title), 두 번째 문단에는 함수의 설명(Description)을 입력해주면 됩니다.
@param
은 함수읠 input parameter(Arguments)와 그에 대한 설명을 적어주고, @export
는 이 함수를 패키지에 속해있는 함수로 사용하겠다라는 의미입니다.
다음의 코드로 위에서 생성한 함수의 manual를 생성해주게 되고, man
폴더가 생성되고 그 안에 add.Rd
라는 manual 파일이 생성되게 됩니다.
devtools::document()
ℹ Updating fda.manifold documentation
ℹ Loading fda.manifold
Writing NAMESPACE
Writing NAMESPACE
Writing fda.manifold-package.Rd
Writing add.Rd
다음과 같이 함수의 설명을 확인해보면, 우리가 입력해준 내용이 나타나는 것을 확인할 수 있습니다.
?add
패키지 check
이제 R CMD check
를 통해 이 패키지가 정상적으로 사용될 수 있는지에 대한 확인을 해주어야 하는데요.
이는 Rstudio에서 Build
탭에 Check
버튼을 눌러주거나
아래의 함수를 사용해주면 됩니다.
devtools::check()
아래와 같이 아무런 errors나 warnings, notes가 나타나지 않으면 현재 패키지 작동에 문제가 없다는 것을 의미합니다.
만약 이 과정에서 문제가 있다는 메시지가 있을 경우, 내용을 보고 함수나 다른 설정을 수정해준 후에 다시 R CMD check
를 해주면 됩니다.
0 errors ✓ | 0 warnings ✓ | 0 notes ✓
R CMD check succeeded