RStudio에서 패키지 개발하는 방법입니다. devtools와 roxygen 패키지를 사용하여 R 패키지를 개발하는 방법을 보여줍니다. roxygen 를 사용해서 문서를 생성하는 방식은 한글 지원에 문제가 있습니다.
OS: Window 7
RStudio Version: 0.99.893
R Version: R x64 3.2.3
- RStudio에서 패키지를 개발할 새 프로젝트를 생성합니다.
프로젝트 명을 MyPkg로 생성합니다.
- RStudio 에서 패지지 개발 툴인 패키지 툴을 설치합니다.
- devtools 패키지 설치
install.packages("devtools") 실행합니다.
개발 패지지 소스를 컴파일하는 툴입니다. - roxygen2 패키지 설치
install.packages("roxygen2") 실행합니다.
:패키지 생성시 document 생성에 도움을 줍니다. 한글 지원에 문제가 있습니다.
- devtools 패키지 설치
- RStudio 한글 지원 설정
메뉴에서 Tools >> Global Options... 를 클릭합니다.
아래의 그림과 같이 Save TAB에서 Default Text Encoding 을 UTF-8로 설정합니다.Default Text Encoding 설정
- devtools 개발중인 패키지 소스를 컴파일 할 때 사용할 옵션을 설정합니다.
- 새 스크립트 창을 생성하고 샘플 함수를 작성하고 실행합니다
square <- function(x){
return (x^2)
}
- package.skeleton() 함수를 이용하여 패키지를 생성합니다.
- mypkg 아래 MANUAL 파일들을 수정합니다.
- DESCRIPTION 파일을 열어 수정
예)
Package: mypkg Type: Package Title: A package I made Version: 1.0 Date: 2016-03-25 Author: seung-bong lee Maintainer: seung-bong lee
Description: This is a sample package License: GPL2 - mypkg/man 디렉토리에서 mypkg-package.Rd 파일을 열어 수정합니다.
예)
\name{mypkg-package} \alias{mypkg-package} \alias{mypkg} \docType{package} \title{ Sample Test package } \description{ Add together two numbers } \details{ The DESCRIPTION file: NONE } \author{ bongiiya Maintainer: bongiiya } \references{ cran } \keyword{ power } \seealso{ devtools, roxygen2 packages } \examples{ }
- square.Rd 파일은 Build 시 자동 삭제 됩니다.
- DESCRIPTION 파일을 열어 수정
예)
- 패키지 설정 화면에서 패키지 디렉토리 지정.
상단 4번 설정 영역 그림 참조 - devtools, roxygen2 패키지를 로딩합니다.
- library(devtools)
- library(roxygen2)
- devtools::load_all("mypkg") 실행(CTRL + SHIFT + L 단축키 실행)
-
성공적이면 Console 창에 아래와 같이 출력 됨
> devtools::load_all("mypkg")
Loading mypkg - mypkg::square(2) 를 입력하여 테스트 함수를 실행 해 봄
> mypkg::square(2)
[1] 4
-
성공적이면 Console 창에 아래와 같이 출력 됨
- Boulid Source Package 실행합니다.
- 우측 상단의 영역의 툴바에서 아래 그림과 같이 클릭하여 실행합니다.
- 에러가 발생하고 엔코딩 문제로 인해 콘솔의 글자가 깨져 보입니다.
- 엔코딩 문제 해결
- Sys.setenv(LANG = "en_US.UTF-8")
Build 수행시 에러 메세지가 깨지는 문제를 해결합니다.
- Sys.setenv(LANG = "en_US.UTF-8")
- Boulid Source Package 다시 실행합니다.
성공하면 아래 그림과 같이 Working Directory에 패키지 배포용 zip파일일 생성됩니다.mypkg gz 파일생성 - 함수 내에 한글이 있는 경우 테스트 합니다.
mypkg/R/square.R 파일을 열어
아래의 샢믈 코들을 입력한다.
getMessage <- function(x){
return (cat(3, "을 입력했습니다."))
}
- Boulid Source Package 실행합니다.
함수 내에 한글이 있는 경우도 성공적으로 빌드됩니다.
엔코딩 에러가 발생한면
엔코딩 에러가 발생한면 Sys.setlocale("LC_ALL") 실행하여 엔코딩을 변경해 본다.
패키지 개발을 하는 동안 엔코딩 문제가 발생하여 해결책을 찾는데 많은 시간이 걸렸습니다. roxygen2을 사용하여 문서를 생성할 때에도 엔코딩 문제는 계속 발생합니다.
댓글 없음:
댓글 쓰기