Rのパッケージングについて調べている。日本語のまとまった情報があまりないのでまとめておく。
その1はパッケージングの基本について手を動かさなくてもいいような説明を、その2では実際にパッケージングをやってみる。
ツールについて
devtools, roxygen2, testthatを使う。Rnwファイルをpdfに変換するのにlualatexも必要。
簡単にまとめると、devtoolsはRのパッケージ開発の補助、roxygen2はRソースからのRdファイル自動生成(ソースとドキュメントは同じ所にある方が良いに決まっている)、testthatはテストに使われれる。どれも作者がHadley Wickhamさんなのでプロダクト提灯記事に釣られているかもしれないが。devtoolsのインストールについてはdevtools, roxygen2, testthatのインストールに書いた。
ディレクトリ構造
重要そうなものをピックアップすると、
/MyPackage # 絶対必要 ├── R: Rのソースを置くところ ├── DESCRIPTION # オプション ├── man: roxygen(後述)で自動生成されたファイル ├── README ├── inst │ ├── CITATION │ └── doc ├── src: C++ソースなど ├── tests: テスト └── vignettes: 長い説明置き場
のようになっている。http://cran.github.ioを見るといろいろなパッケージが転がっていて楽しい。テストを置く場所はパッケージ直下においているものが多く、/inst/tests
に置く例はあまりない。(devtools推奨らしいが)
DESCRIPTION
以下のような内容を記述しておく。
Package: MyPackage Type: Package Title: What the package does (short line) Description: More about what it does (maybe more than one line) Version: 1.0 Date: 2014-07-16 Author: Who wrote it Maintainer: Who to complain to <yourfault@somewhere.net> Suggests: testthat License: What license is it under?
ひとまずこの項目について埋めれば良さそう。よく使われるパッケージでは説明も充実していることが多く、長いDESCRIPTIONが付いている。
Rファイル(関数)のドキュメント
Rmdファイル
Rnwファイル
パッケージのビルド、インストール、チェック
作業をはじめる前にRのためのTex環境のセットアップ in Ubuntu 14.04 (trusty))に目を通しておく。
参考
R でいまどきなパッケージ開発 (devtools, testthat, roxygen2)
Advanced R
Sweave knitr and LaTeX
他のドキュメンテーション方法
関連本
R言語上級ハンドブック: ドキュメントの類は持っててもコスパが悪いので借りるつもり。パッケージングの知識を楽して集めたい(笑)
ドキュメント・プレゼンテーション生成: 気がついたら買ってる気がする。ドキュメンテーション関連ではipython notebookが使いやすくて神なのだけれど、Rも表現力があるし乗り換えコスト考えたらpythonの時代が来る前にJuliaとかに行ってしまうかもしれないと思ったり。