Rstudioのパッケージ作成ツールを使ってみる

  • Rstudioはこちら
  • そのパッケージ作成支援ツールの使い方はこちら
  • まず、あれやこれやとやって、パッケージを作るのに適当そうな関数を書きためたファイル"hoge.R"があるとする
  • ここからスタート
  • まず、第一に、「日本語文字はすべて削除!」色々な段階で、エラーが出る原因になるので。自分のためのパッケージなのに、自分の使いたい文字が使えないのは馬鹿らしいのだが、以下のような「対策」で乗り切ることもできる
    • 妥協策としては日本語コメントつきで作り、それは「影ファイル」として取っておき、英語のみで(コメントをつけない、というのもあり)書いておく。影ファイルは「任意の添付文書」のようにしてもよいだろうし、正式の文書から、「日本語ファイル置き場へのリンクを張る」のもよいかも
  • Rstudioでパッケージ作成用のプロジェクトを作成する。ツールバーからFile -> New Projectで、以下の画面になるので、

  • New directory を選び、現れるウィンドウでR packageを選ぶ

  • パッケージの名称指定などの画面(以下)が出るので、namaeを入れ、既に作ってあるhoge.Rのファイルを、Addして、適当な場所を指定して、OKする

  • 読み込んだパッケージ用ファイルの中身を反映したもろもろのディレクトリ構造とともに、すると真っ新なプロジェクトがRstudioとして新規に立ち上がる


  • 出来たもろもろは
    • .Rbuildignore
      • Ignoreと書いてあるので、これは多分要らないもの
    • DESCRIPTION
      • これは、パッケージに必須なDESCRIPTIONファイル。中身は以下のようにからっぽなので、これに書き加えていく
Package: multiwayTable
Type: Package
Title: What the package does (short line)
Version: 1.0
Date: 2014-04-29
Author: Who wrote it
Maintainer: Who to complain to <yourfault@somewhere.net>
Description: More about what it does (maybe more than one line)
License: What license is it under?
    • man
      • これの中は、読み込んだ関数の数だけ、その関数名に対応したmanualファイルができている。そのうちの1つの中身はmanファイルテンプレートになっている。テンプレートの1つは以下のようなもの。テンプレートの書き換え指示があるので、これも沿って書き直す

\name{calc.marg}
\alias{calc.marg}
%- Also NEED an '\alias' for EACH other topic documented here.
\title{
%%  ~~function to do ... ~~
}
\description{
%%  ~~ A concise (1-5 lines) description of what the function does. ~~
}
\usage{
calc.marg(A)
}
%- maybe also 'usage' for other objects documented here.
\arguments{
  \item{A}{
%%     ~~Describe \code{A} here~~
}
}
\details{
%%  ~~ If necessary, more details than the description above ~~
}
\value{
%%  ~Describe the value returned
%%  If it is a LIST, use
%%  \item{comp1 }{Description of 'comp1'}
%%  \item{comp2 }{Description of 'comp2'}
%% ...
}
\references{
%% ~put references to the literature/web site here ~
}
\author{
%%  ~~who you are~~
}
\note{
%%  ~~further notes~~
}

%% ~Make other sections like Warning with \section{Warning }{....} ~

\seealso{
%% ~~objects to See Also as \code{\link{help}}, ~~~
}
\examples{
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (A) 
{
    d <- dim(A)
    ret <- list()
    for (i in 1:length(d)) {
        ret[[i]] <- apply(A, i, sum)
    }
    ret
  }
}
% Add one or more standard keywords, see file 'KEYWORDS' in the
% R documentation directory.
\keyword{ ~kwd1 }
\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line
    • multiwayTable.Rprojというファイル(このプロジェクトに仮につけた名前がmultiwayTable)は、開くと下図が開く。これはパッケージ作成上の条件設定ファイルであって、パッケージには含まれなくなるファイル。一度作業を中断し、再開するときは、このファイルを開くとRstudioが立ち上がってくれる

    • NAMESPACE
      • パッケージに出力するべき変数を書きだすところ。
exportPattern("^[[:alpha:]]+")
    • Rというディレクトリには、先に読み込ませたソースファイルが置かれている。ファイル名もコメントなどもそのまま。
    • Read-and-delete-meは何をするかを指示したファイルで、最終的には、捨てるべきファイル。その中身を日本語訳とともに書けば…
* Edit the help file skeletons in 'man', possibly combining
  help files for multiple functions.'man"の中に作られた骨格だけのヘルプファイルを編集せよ。複数の関数のヘルプファイルを統合することも考慮すること。
* Edit the exports in 'NAMESPACE', and add necessary imports.'NAMESPACE'ファイルのexportsを編集せよ。他のパッケージの変数を使うときは、importsにパッケージ名のnamespaceとともに指定して読み込ませる
* Put any C/C++/Fortran code in 'src'.ここでは読み込まれていないC,C++,Fortranのファイルがあるなら、'src'ディレクトリを作ってそこに入れよ
* If you have compiled code, add a useDynLib() directive to
  'NAMESPACE'.C,C++,Fortranとしてsrcに置くファイルはコンパイルしたものではないが、コンパイルしたものを使うときは、NAMESPACEのところで何かするらしい。詳細不明。自分ではきっと使わない
* Run R CMD build to build the package tarball.準備ができたらビルドせよ
* Run R CMD check to check the package tarball.その後うまく行ったかのチェックをせよ

Read "Writing R Extensions" for more information.
  • ビルドする
    • 諸ファイルの書き換えが終わったらビルドする。右上のセクションに"Build"タブがあって"Build & Reload"ボタンがあるので、押すだけ(必須項目ができてないと怒られる)