1. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Creating R Package for Windows Users
Jae-seong Yoo
Dept. of Statistics
February 15, 2015
2. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Title
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
3. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
누가 이 문서를 보는 것이 좋은가?
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
4. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission 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 등)와의 인터페이싱에 관심이 있는가?
(인터페이싱은 반드시 필요하지는 않다. 이 문서에서는 다루지 않을 것이다.)
5. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
주요 용어
R Package
R Package 만들기에 관한 주요 문서
Introduction
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
6. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
주요 용어
R Package
R Package 만들기에 관한 주요 문서
주요 용어
Package An extension of the R base system with code, data and documentation in
standardized 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, may
work 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 R
Core.
Contributed Packages All the rest. This does not mean that these packages are necessarily of
lesser quality than the above, e.g., many contributed packages on CRAN are
written and maintained by R Core members. We simply try to keep the base
distribution as lean as possible.
7. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
주요 용어
R Package
R Package 만들기에 관한 주요 문서
R Package
Package An extension of the R base system with code, data and documentation in
standardized 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을 참고하도록 하자.)
8. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
주요 용어
R Package
R 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 Windows
http://robjhyndman.com/hyndsight/building-r-packages-for-windows/
Developing R packages
https:
//sites.google.com/site/hackoutwiki/developers-corner/developing-r-packages
9. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Set Up and Configuration
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
10. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Set Up and Configuration
왜 이들을 준비해야 할까?
R은 원래 리눅스 환경에서 제작되었다. R 패키지를 만드는 일 또한 R Core
작업 중 하나이므로 리눅스 환경이 유리하다.
그러나 이미 윈도우즈 환경에 익숙해진 우리는 이를 일일이 준비하는 것이
부담되므로, 윈도우즈 환경에서 리눅스용 작업이 가능한 환경을
갖추어주어야 한다.
리눅스 환경에서 해야할 작업을 윈도우즈에서 하다보니 예외상황에도 많이
직면하게 될 것이다.
무엇을 준비해야 할까?
R
Editor
RTools
MikTeX
texinfo
Inno Setup
XML (WiX) toolkit
MinGW-w64
※ 사실 이들 중 일부는 늘 필요한 것이 아니지만, 그냥 설치하자. 예외상황에 대처하기 귀찮다...
11. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission 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/
12. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Set Up and Configuration : MikTeX
MikTeX
http://miktex.org/
TeXLive 등 다른 TeX 컴파일러는 안된다. 반드시 MikTeX을 설치하자.
작업하는 환경에 맞는 MikTeX을 설치하자. (아래 그림 참고)
13. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Set Up and Configuration : MikTeX
다음 MikTeX 패키지 필수 설치 :
times, inconsolata (또는 bera), lm, cm-super, ae, hyper, hyperref
14. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission 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/
15. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
환경 변수 설정
차례대로 따라하도록 하자. 1/5
16. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
환경 변수 설정
차례대로 따라하도록 하자. 2/5
17. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
환경 변수 설정
차례대로 따라하도록 하자. 3/5
18. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
환경 변수 설정
차례대로 따라하도록 하자. 4/5
19. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
환경 변수 설정
차례대로 따라하도록 하자. 5/5
말풍선에 있는 값을 추가하자.
※ 문서를 작성하는 시점에서의 최신 버전 기준으로 작성하였지만, R, MikTeX의 경우 버전에
따라 설치 경로가 달라져있을 수 있으니, 설치 경로를 확인하고 추가하자.
20. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
Build a R Packages
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
21. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
22. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
패키지 골격을 만들어주는 함수 : package.skeleton
함수가 정상적으로 만들어졌다면, setwd로 지정한 폴더에 MyPac이라는 폴더가 생성된다.
23. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
패키지 골격을 만들어주는 함수 : package.skeleton
함수가 정상적으로 만들어졌다면, setwd로 지정한 폴더에 MyPac이라는 폴더가 생성된다.
24. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
패키지 골격을 만들어주는 함수 : package.skeleton
MyPac 폴더에 만들어진 폴더 및 파일
man Document 파일(.Rd)이 모여있는 폴더
R 작성한 함수(.R) 파일이 모여있는 폴더
DESCRIPTION 패키지 자체에 대한 메타 Document
25. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
패키지 골격을 만들어주는 함수 : package.skeleton
man 폴더에 있는 Document(.Rd) 파일들
26. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
패키지 골격을 만들어주는 함수 : package.skeleton
R 폴더에 있는 함수(.R) 파일들
27. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
package.skeleton(패키지 골격)으로 만들어지지
않는다면?
잘못 만든 함수 함수가 잘못 만들어졌을 수 있다.
인코딩 문제 파일 문자 유형(이하 인코딩)은 UTF-8로 저장되어야 한다.
(윈도우즈에서 텍스트파일 기본은 ANSI 또는 EUC-KR)
메모장이나 Notepad++을 사용할 경우 아래 그림과 같은 방법으로 인코딩을
변경해주자.
28. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
Writing Documents for R Packages
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
29. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
DESCRIPTION
MyPac의 DESCRIPTION을 열어본 모습
30. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
DESCRIPTION
DESCRIPTION의 일반적인 양식
반드시 이 형태를 지켜야 한다.
31. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
man (.Rd)
MyPac의 man 폴더 안에 있는 prod cube.Rd 파일을 열어본 모습
나름 TeX 양식이다.
함수가 n개 있으면, n+1개의 Rd 파일이 man 폴더 안에 생성된다.
(+1은 패키지 [패키지명−package].Rd 파일)
32. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
man (.Rd)
일반적인 .Rd의 양식
만일 필요없는 항목이라고 여겨지면, 아예 그 section을 삭제해주자.
가령 키워드가 필요없다면, keyword 를 아예 지워주자.
문서에서 쓸모없거나 성의없는 항목이 있는 것은, 패키지 reject이 될 큰 사유가 된다.
33. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
그 외의 패키지를 구성하는 것들
그 외에 Demo, Dataset, 추가 프로그램, 언어에 따른 메시지 출력, 추가 문서 등
Writing R Extensions을 참고하도록 하자.
http://cran.r-project.org/doc/manuals/r-release/R-exts.html
34. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Submission to CRAN
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
35. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission 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페이지 이후에서 설명하겠음.
36. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Build your package
MyPac을 Rcmd 명령어로 check, build하는 모습
이 예제를 위해 만든 예제이다보니, 굳이 Document를 작성하지 않았기 때문에, Error와
Warning이 발생하였지만, 사실은 이런 메시지가 뜨면 안된다.
37. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Build your package
예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법
38. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Build your package
예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법
CMD 창에서 다음 명령어를 차례로 입력한다. CMD 창은 닫지 말자.
initexmf –update-fndb
initexmf –edit-config-file updmap
39. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Build your package
예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법
메모장이 자동으로 뜰 것이다. 거기에 다음 라인을 추가하고 저장한다.
Map zi4.map
40. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Build your package
예외상황 : Error: Font ts1-zi4r at 540 not found 에 대한 해결 방법
아까 열어놓은 CMD 창에서 다음 명령어를 입력한다.
initexmf –mkmaps
이제 CMD 창을 닫아도 된다.
이 과정을 거쳤음에도 여전히 문제가 발생한다면 MikTeX을 제대로 설치했는지 확인해보자.
41. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Submission to CRAN
위 .tar 파일을 CRAN에 제출하면 된다.
42. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Submission to CRAN
Submit package to CRAN http://xmpalantir.wu.ac.at/cransubmit/
43. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Submission to CRAN
생각보다 빠른 시간 안에 경과 메일이 온다.
실패했을 경우, 실패 사유를 적어줄 것이다.
위의 경우는 Warning 메시지를 확인하라는 회신을 준 경우이다.
44. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
Build your package
Submission to CRAN
Submission to CRAN
성공했을 때도 메일을 위와 같이 보내줄 것이다.
위와 같은 회신이 와도, 전 세계 mirror 서버에 파일이 전부 복사되는 데에는 경우에 따라 1∼7
일 정도 걸리니, install.packages() 명령어를 바로 치고 싶어도, 잠시만 참고 기다리도록 하자.
45. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
마무리하면서...
1 누가 이 문서를 보는 것이 좋은가?
2 Introduction
주요 용어
R Package
R Package 만들기에 관한 주요 문서
3 Set Up and Configuration
4 Build a R Packages
예제 : 제곱, 세제곱을 해주는 패키지를 만들어보자.
패키지 골격을 만들어주는 함수 : package.skeleton
package.skeleton(패키지 골격)으로 만들어지지 않는다면?
5 Writing Documents for R Packages
DESCRIPTION
man (.Rd)
그 외의 패키지를 구성하는 것들
6 Submission to CRAN
Build your package
Submission to CRAN
7 마무리하면서...
46. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission 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만
되었다면 받아주는 분위기이다.)
47. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
패키지에 들어갈 함수를 위한 추가 팁 1
Object의 Type은 정말 예민한 문제이니, 아예 함수에서 받아들여야 할 인자의 Type을
제한하는 방법을 많이 쓴다.
is. stop 명령어를 활용하는 방법
warning 명령어도 있다.
함수 안에서 형변환을 해주는 방법
48. 누가 이 문서를 보는 것이 좋은가?
Introduction
Set Up and Configuration
Build a R Packages
Writing Documents for R Packages
Submission to CRAN
마무리하면서...
패키지에 들어갈 함수를 위한 추가 팁 2
패키지를 load할 때 그 패키지가 설치되지 않았다면, 설치해주고 load까지 해주는 코드
다른 패키지에 대한 Dependency를 낮추면서, 다른 패키지의 기능을 활용할 수 있다.
Demo에만 쓰자. 패키지에 쓰이는 함수에서는 이 꼼수가 통하지 않는다.