creating r package for windows users

48
t 8| t @? Introduction Set Up and Configuration Build a R Packages Writing Documents for R Packages Submission to CRAN ¨4Xt... Creating R Package for Windows Users Jae-seong Yoo Dept. of Statistics February 15, 2015

Upload: jaeseong-yoo

Post on 29-Jul-2015

1.214 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Creating R Package for Windows Users

Jae-seong Yoo

Dept. of Statistics

February 15, 2015

Page 2: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Title1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 3: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

누가 이 문서를 보는 것이 좋은가?1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 4: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

누가 이 문서를 보는 것이 좋은가?

이 문서는, 고려대학교 통계학과 석사과정 이상의 학생들을 대상으로 만들어졌다.그러나 어느 정도 R을 다루는 수준이 있는 사람이라면 누구나 볼 수 있다.

이 문서는 다음과 같은 사람에게 도움이 될 것이다.

(당연하지만,) R 패키지를 만들고자 하는 사람(역시 당연하지만,) R의 기초는 되어있는 사람Windows 환경에서 패키지를 만들고자 하는 사람.

(이 문서는 Windows 7 64비트 환경에 초점이 맞추어져 있다.)

자신이 R의 기초가 되어있고, R 패키지를 만들 준비가 되어있는지 판단하기 위해서는,스스로에게 다음의 질문을 던져보자.

1 벡터, 행렬, 데이터프레임, 문자열 등의 Object Type에 대해 잘 알고 이해하고있는가?

2 조건문 (if, switch case 등), 반복문(for, while 등)을 잘 활용할 수 있는가?3 (간단한 목적이더라도) 사용자정의 함수를 자유롭게 만들 수 있는가?4 다른 언어(C, Fortran, Java, Python 등)와의 인터페이싱에 관심이 있는가?

(인터페이싱은 반드시 필요하지는 않다. 이 문서에서는 다루지 않을 것이다.)

Page 5: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

주요 용어R PackageR Package 만들기에 관한 주요 문서

Introduction1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 6: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

주요 용어R PackageR Package 만들기에 관한 주요 문서

주요 용어

Package An extension of the R base system with code, data and documentation instandardized format.

Library A directory containing installed packages.

Repository A website providing packages for installation.

Source The original version of a package with human-readable text and code.

Binary A compiled version of a package with computer-readable text and code, maywork only on a specific platform.

Base Packages Part of the R source tree, maintained by R Core.

Recommended Packages Part of every R installation, but not necessarily maintained by RCore.

Contributed Packages All the rest. This does not mean that these packages are necessarily oflesser quality than the above, e.g., many contributed packages on CRAN arewritten and maintained by R Core members. We simply try to keep the basedistribution as lean as possible.

Page 7: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

주요 용어R PackageR Package 만들기에 관한 주요 문서

R Package

Package An extension of the R base system with code, data and documentation instandardized format.

R 패키지에 반드시 들어가야 하는 것

각각 함수로 구현 된 R 코드 Set (확장명 .R로 R 폴더에 저장됨)

위의 각 함수에 대한 Document (확장명 .Rd로 man 폴더에 저장됨)

DESCRIPTION (패키지 자체에 대한 메타 Document)

※ 위는 모두 package.skeleton()을 실행할 때 자동으로 생성된다.※ 반드시 utf-8로 저장해야한다.

R 패키지에 들어갈 수 있는 것Dataset (이에 관한 Document도 함께 필요함.)

Demo (이에 관한 Document도 함께 필요함.)

Depends (의존하는 패키지. DESCRIPTION에서 지정해준다.)

Suggests(의존하지는 않지만 함께 사용하길 권장하는 패키지. DESCRIPTION에서 지정해준다.)

그 외에 추가 프로그램, 언어에 따른 메시지 출력, 추가 문서 등(Writing R Extensions을 참고하도록 하자.)

Page 8: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

주요 용어R PackageR Package 만들기에 관한 주요 문서

R Package 만들기에 관한 문서

공식 문서 Writing R Extensions : R 패키지를 위한 공식 매뉴얼http://cran.r-project.org/doc/manuals/r-release/R-exts.html

CRAN Repository Policy : CRAN에 제출하기 위해 지켜야할 정책http://cran.r-project.org/web/packages/policies.html

Contributed Packages : 이미 있는 패키지명을 확인하기 위해http://cran.nexr.com/web/packages/index.html

The R Reference Index : 이미 있는 함수명을 확인하기 위해http://cran.r-project.org/doc/manuals/r-release/fullrefman.pdf

비공식 문서 David Dies, (—-), ”Building R Packages - An Introduction”, Havard

SPH.

Friedrich Leisch, (2009), ”Creating R Packages: A Tutorial”, R

Development Core Team.

Building R packages for Windowshttp://robjhyndman.com/hyndsight/building-r-packages-for-windows/

Developing R packageshttps:

//sites.google.com/site/hackoutwiki/developers-corner/developing-r-packages

Page 9: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Set Up and Configuration1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 10: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Set Up and Configuration

왜 이들을 준비해야 할까?R은 원래 리눅스 환경에서 제작되었다. R 패키지를 만드는 일 또한 R Core작업 중 하나이므로 리눅스 환경이 유리하다.그러나 이미 윈도우즈 환경에 익숙해진 우리는 이를 일일이 준비하는 것이

부담되므로, 윈도우즈 환경에서 리눅스용 작업이 가능한 환경을갖추어주어야 한다.리눅스 환경에서 해야할 작업을 윈도우즈에서 하다보니 예외상황에도 많이

직면하게 될 것이다.

무엇을 준비해야 할까?

REditorRToolsMikTeXtexinfoInno SetupXML (WiX) toolkitMinGW-w64

※ 사실 이들 중 일부는 늘 필요한 것이 아니지만, 그냥 설치하자. 예외상황에 대처하기 귀찮다...

Page 11: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Set Up and Configuration : R, Editor, Rtools

R 생략

Editor R에 내장된 자체 Editor, notepad, TinnR 등.

어느 것을 써도 좋지만, R Document를 작성할 때 인코딩 문제가 발생할 수있는데, 이를 수월하게 해결해줄 수 있는 Tool이 Notepad++이다. 따라서이를 권장한다.

하지만 자신에게 익숙한 Tool을 쓰는 것이 최선이다.

Rtools R과 R 패키지를 build하기 위한 tool을 모아놓은 kit을 Rtools라고 한다.

R-project 홈페이지 -> CRAN -> Download R for Windows -> Rtools를다운로드하여 설치하도록 한다.

http://cran.nexr.com/bin/windows/

Page 12: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Set Up and Configuration : MikTeX

MikTeX

http://miktex.org/

TeXLive 등 다른 TeX 컴파일러는 안된다. 반드시 MikTeX을 설치하자.작업하는 환경에 맞는 MikTeX을 설치하자. (아래 그림 참고)

Page 13: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Set Up and Configuration : MikTeX

다음 MikTeX 패키지 필수 설치 :times, inconsolata (또는 bera), lm, cm-super, ae, hyper, hyperref

Page 14: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Set Up and Configuration : Others

texinfo http://gnuwin32.sourceforge.net/packages/texinfo.htm

Inno Setup http://www.jrsoftware.org/isinfo.php

XML (WiX) toolkit http://wixtoolset.org/

MinGW-w64 Cygwin을 추천한다.http://mingw-w64.sourceforge.net/

Page 15: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

환경 변수 설정

차례대로 따라하도록 하자. 1/5

Page 16: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

환경 변수 설정

차례대로 따라하도록 하자. 2/5

Page 17: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

환경 변수 설정

차례대로 따라하도록 하자. 3/5

Page 18: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

환경 변수 설정

차례대로 따라하도록 하자. 4/5

Page 19: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

환경 변수 설정

차례대로 따라하도록 하자. 5/5

말풍선에 있는 값을 추가하자.

※ 문서를 작성하는 시점에서의 최신 버전 기준으로 작성하였지만, R, MikTeX의 경우 버전에

따라 설치 경로가 달라져있을 수 있으니, 설치 경로를 확인하고 추가하자.

Page 20: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

Build a R Packages1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 21: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.

Page 22: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

패키지 골격을 만들어주는 함수 : package.skeleton

함수가 정상적으로 만들어졌다면, setwd로 지정한 폴더에 MyPac이라는 폴더가 생성된다.

Page 23: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

패키지 골격을 만들어주는 함수 : package.skeleton

함수가 정상적으로 만들어졌다면, setwd로 지정한 폴더에 MyPac이라는 폴더가 생성된다.

Page 24: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

패키지 골격을 만들어주는 함수 : package.skeleton

MyPac 폴더에 만들어진 폴더 및 파일

man Document 파일(.Rd)이 모여있는 폴더

R 작성한 함수(.R) 파일이 모여있는 폴더

DESCRIPTION 패키지 자체에 대한 메타 Document

Page 25: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

패키지 골격을 만들어주는 함수 : package.skeleton

man 폴더에 있는 Document(.Rd) 파일들

Page 26: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

패키지 골격을 만들어주는 함수 : package.skeleton

R 폴더에 있는 함수(.R) 파일들

Page 27: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

package.skeleton(패키지 골격)으로 만들어지지않는다면?

잘못 만든 함수 함수가 잘못 만들어졌을 수 있다.

인코딩 문제 파일 문자 유형(이하 인코딩)은 UTF-8로 저장되어야 한다.(윈도우즈에서 텍스트파일 기본은 ANSI 또는 EUC-KR)메모장이나 Notepad++을 사용할 경우 아래 그림과 같은 방법으로 인코딩을변경해주자.

Page 28: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

DESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

Writing Documents for R Packages1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 29: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

DESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

DESCRIPTION

MyPac의 DESCRIPTION을 열어본 모습

Page 30: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

DESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

DESCRIPTION

DESCRIPTION의 일반적인 양식

반드시 이 형태를 지켜야 한다.

Page 31: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

DESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

man (.Rd)

MyPac의 man 폴더 안에 있는 prod cube.Rd 파일을 열어본 모습

나름 TeX 양식이다.함수가 n개 있으면, n+1개의 Rd 파일이 man 폴더 안에 생성된다.

(+1은 패키지 [패키지명−package].Rd 파일)

Page 32: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

DESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

man (.Rd)

일반적인 .Rd의 양식

만일 필요없는 항목이라고 여겨지면, 아예 그 section을 삭제해주자.가령 키워드가 필요없다면, \keyword 를 아예 지워주자.

문서에서 쓸모없거나 성의없는 항목이 있는 것은, 패키지 reject이 될 큰 사유가 된다.

Page 33: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

DESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

그 외의 패키지를 구성하는 것들

그 외에 Demo, Dataset, 추가 프로그램, 언어에 따른 메시지 출력, 추가 문서 등

Writing R Extensions을 참고하도록 하자.

http://cran.r-project.org/doc/manuals/r-release/R-exts.html

Page 34: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Submission to CRAN1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 35: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Build your package

이제 모든 과정이 끝났으면, Build를 하자.

원래는 CMD 창에서 치는 Rcmd 명령어이지만, system() 함수를 이용하여 R 상에서 check,build를 위와 같이 할 수 있다.

Rcmd check ... 명령어에서 error가 발생한다면 build가 아예 되지 않을 것이다.

만일 warning이 발생한다면 build는 될 것이지만, CRAN에서는 이 패키지를 받아주지 않는다.

Rcmd check를 하는 과정에서 error나 warning이 발생하였다면, 함수는 제대로 작성했는지,인코딩 문제는 없는지 등 앞에서 설명한 모든 부분을 제대로 거쳤는지 다시 꼼꼼하게

확인해보자.

다만 예외상황 ”Error: Font ts1-zi4r at 540 not found” 에 대한 error가 뜬다면, 이에 대한해결책은 2페이지 이후에서 설명하겠음.

Page 36: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Build your package

MyPac을 Rcmd 명령어로 check, build하는 모습

이 예제를 위해 만든 예제이다보니, 굳이 Document를 작성하지 않았기 때문에, Error와Warning이 발생하였지만, 사실은 이런 메시지가 뜨면 안된다.

Page 37: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Build your package

예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법

Page 38: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Build your package

예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법

CMD 창에서 다음 명령어를 차례로 입력한다. CMD 창은 닫지 말자.initexmf –update-fndbinitexmf –edit-config-file updmap

Page 39: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Build your package

예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법

메모장이 자동으로 뜰 것이다. 거기에 다음 라인을 추가하고 저장한다.Map zi4.map

Page 40: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Build your package

예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법

아까 열어놓은 CMD 창에서 다음 명령어를 입력한다.initexmf –mkmaps이제 CMD 창을 닫아도 된다.

이 과정을 거쳤음에도 여전히 문제가 발생한다면 MikTeX을 제대로 설치했는지 확인해보자.

Page 41: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Submission to CRAN

위 .tar 파일을 CRAN에 제출하면 된다.

Page 42: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Submission to CRAN

Submit package to CRAN http://xmpalantir.wu.ac.at/cransubmit/

Page 43: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Submission to CRAN

생각보다 빠른 시간 안에 경과 메일이 온다.

실패했을 경우, 실패 사유를 적어줄 것이다.위의 경우는 Warning 메시지를 확인하라는 회신을 준 경우이다.

Page 44: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

Build your packageSubmission to CRAN

Submission to CRAN

성공했을 때도 메일을 위와 같이 보내줄 것이다.위와 같은 회신이 와도, 전 세계 mirror 서버에 파일이 전부 복사되는 데에는 경우에 따라 1∼7일 정도 걸리니, install.packages() 명령어를 바로 치고 싶어도, 잠시만 참고 기다리도록 하자.

Page 45: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

마무리하면서...1 누가 이 문서를 보는 것이 좋은가?2 Introduction

주요 용어

R PackageR Package 만들기에 관한 주요 문서

3 Set Up and Configuration4 Build a R Packages

예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.패키지 골격을 만들어주는 함수 : package.skeletonpackage.skeleton(패키지 골격)으로 만들어지지 않는다면?

5 Writing Documents for R PackagesDESCRIPTIONman (.Rd)그 외의 패키지를 구성하는 것들

6 Submission to CRANBuild your packageSubmission to CRAN

7 마무리하면서...

Page 46: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

마무리하면서...

신경써야 할 부분

Policy는 꼭 지켜야 한다.사용할 메일 주소는, 가급적이면 평생 사용할 것으로 하자.(korea.ac.kr 메일을 과연 내 인생에서 얼마나 쓰겠는가...)

인코딩은 의외로 예민한 문제이다.Object의 Type은 정말 예민한 문제이다.Demo, Reference가 있으면 accept될 가능성이 크게 올라간다.(필수는 아니다. Demo의 경우는 그에 대한 .Rd를 추가로 작성해주어야 하지만, R Document가 부실할 경우 Demo가 패키지 accept에 큰 도움이 된다.)

제출만 하고 손을 놓고 있지는 말자. 유지 보수가 중요하다.

크게 신경쓰지 않아도 될 부분

이미 있는 기능이라고 겁먹지 말자.(기존 패키지보다 더 나은 점을 R document나 reference로 어필하면 된다. 다만 R document에타 패키지를 언급하는 것은 신중해야한다. CRAN 사람들은 예의와 상호 존중을 중요시한다.)

R로만 작성해도 좋다. 제대로만 작동하면 된다.(다른 언어와의 인터페이싱은 성능 개선을 위한 일일 뿐, 필수가 아니다.)

참조하는 Reference가 학계에서 힘이 약해도 괜찮다. 사실 없어도 된다.(단지 있으면 accept될 가능성이 커지는 것. 그 reference는 ”남들이 제대로 된 reference라고인정만 해주었으면” 그것으로도 충분하다. 석사학위논문, 영어가 아닌 논문도 accept만되었다면 받아주는 분위기이다.)

Page 47: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

패키지에 들어갈 함수를 위한 추가 팁 1

Object의 Type은 정말 예민한 문제이니, 아예 함수에서 받아들여야 할 인자의 Type을제한하는 방법을 많이 쓴다.

is. stop 명령어를 활용하는 방법

warning 명령어도 있다.

함수 안에서 형변환을 해주는 방법

Page 48: Creating R Package for Windows Users

누가 이 문서를 보는 것이 좋은가?Introduction

Set Up and ConfigurationBuild a R Packages

Writing Documents for R PackagesSubmission to CRAN

마무리하면서...

패키지에 들어갈 함수를 위한 추가 팁 2

패키지를 load할 때 그 패키지가 설치되지 않았다면, 설치해주고 load까지 해주는 코드

다른 패키지에 대한 Dependency를 낮추면서, 다른 패키지의 기능을 활용할 수 있다.

Demo에만 쓰자. 패키지에 쓰이는 함수에서는 이 꼼수가 통하지 않는다.