読者です 読者をやめる 読者になる 読者になる

tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

Rのパッケージングについて(その1)

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

https://github.com/hadley

他のドキュメンテーション方法

R Markdownをいろんなフォーマットのドキュメントへ

関連本

R言語上級ハンドブック: ドキュメントの類は持っててもコスパが悪いので借りるつもり。パッケージングの知識を楽して集めたい(笑)
ドキュメント・プレゼンテーション生成: 気がついたら買ってる気がする。ドキュメンテーション関連ではipython notebookが使いやすくて神なのだけれど、Rも表現力があるし乗り換えコスト考えたらpythonの時代が来る前にJuliaとかに行ってしまうかもしれないと思ったり。