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