パッケージ作成

  • ここ数日はWindows上でRstudioにroxygen2を絡めてのパッケージ作成についての記事が続いている
  • 以前の躓きリスト→こちら
  • 今回やるにあたって、installrパッケージを使ってアップデートしたRにRterm.exeが見当たらなかった、それが若干、トラブルの増加に寄与していたようにも思う…。後はRcmdとかにパスを通す、とかをきちんとしておくとトラブルが減ったはずのような気もするが、今回は調べるのはよしておく(面倒くさいから)
  • 自分なりの方針
  • 頑張って関数を一つのファイルに作り
  • それぞれに関するコメントを、roxygen2が扱う書式で書き
  • 完全英文エンコーディングで作っておくのが無難
# Marginal count
# A is an array
#' Brief description of function
#'
#' @param a
#' @param 2
#' @return 
#' \itemize{
#' \item{"x"}{x is something}
#' \item{"y"}{y is one more thing}
#' @details Some more description
#' @examples
#' x <- runif(10)
#' my.fx(x) 
my.fx <- function(x,p){
  if(missing(p))p<-2
  x*p
}
    • この書き方Rstudioは@hogeを選ばせてくれるのでそれに従って書く
    • 最初の1行と、@param,@return,@examplesとそれに引き続くエラーの出ないコードは必須
    • デフォルト値を取らせる引数は、関数の{}の内側でif(missing(p)){}のように与える
  • このようにして、roxygenateしてすべての関数のRdファイルを作る
  • ついで、パッケージ全体のRdファイルを手作業で修正
    • examplesはなしにするかちゃんと動くものにする
    • タイトルはきちんと何か書く
  • ここまでやって、Rstudio上でbuildとcheckとまでを実行したいところだが、Windowsでは、Rのコマンドライン(Rcmdコマンド)とか、texとかpdfとか、引っ掛かるところが満載なので、ここまでできたら、Macに移動
  • MacのRstudioで上記をさらさらとやる
    • checkで引数が合わないとか色々言われるので、ちまちまと直す
    • 言われなくなったら成功
    • RstudioのmoreオプションでBuild source packageとかBuild binary packageとかをする
  • Rstudio上でやらなくても、Macコマンドライン
R CMD build hoge --binary
Rcmd INSTALL --build hoge_1.0.tar.gz 
    • とすればインストールできる(ローカルのzipファイルをインストールするようなもの)
  • この段階でhogeパッケージのインストールは済んでいるので
library(hoge)
  • とすればよい
  • CRANへの登録は、パッケージcheckが済んでいれば、ソースファイルの提出なので、それをあげればよし、と
  • ちなみにRstudioのビルドとかチェックをするところでmoreの中の、Build binary packageというのは
Rcmd.exe INSTALL --build --preclean hogepkg
    • というコマンドを発行すること(これによってRのlibrary置き場にインストールが済む)ことだし
  • Build source packageというのは
Rcmd.exe build hogepkg
    • というコマンドを発行することで、これによってできるhogepkg_1.0.tar.gzをRcmd INSTALL --build hogepkg_1.0.tar.gzとしてパッケージインストールすることもできる