スキップしてメイン コンテンツに移動

投稿

1月, 2012の投稿を表示しています

R でいまどきなパッケージ開発 (devtools, testthat, roxygen2)

追記 (2012/04/21): 以下のコードは S4 classes で書いていますが、R5 reference classes で書き直してみました。こちらもどうぞ。http://blog.hackingisbelieving.org/2012/04/r5-reference-class-r-devtools-testthat.html

R のパッケージ開発の情報があまりないので、自分はこんな感じでやってます、というのを書いてみます。パッケージ開発支援の devtools と単体テスト支援の testthat, そしてドキュメント生成支援の roxygen を使うのがいまどきっぽいです。

そもそもパッケージを作製しているひとをあまりみたことがないので、もっとこうすべき、というのがあれば教えてほしいです。

今回はデモケースとして S4 OOP で、Idol クラスを定義し、とある身体的特徴の統計量を計算するパッケージを作ります。R のプロンプトは > で、シェルのプロンプトは $ で示しています。
0. 準備 必要になるパッケージをインストールします。 $ sudo R > install.packages(devtools) > install.packages(testthat) > q()
devtools の設定をします。~/.Rpackages に設定を記述します。 $ emacs ~/.Rpackages list(   default = function(x) {     file.path("~/Project/dev/R/", x, x)   },   "idol" = "~/Projects/dev/R/idol/idol" )
以下の行は今回パッケージを作製する作業ディレクトリになります。   "idol" = "~/Projects/dev/R/idol/idol"
1. ともあれ実装を始める 作業ディレクトリに移動します。
$mkdir -p ~/Project/dev/R/idol $ cd ~/Project/dev/R emacs を起動して以下のようなコードを書いていきます。 $ emacs idol.R