R Language
devtoolsを使ってパッケージを作る
サーチ…
前書き
このトピックでは、devtoolsパッケージを使用してRパッケージを最初から作成する方法について説明します。
備考
パッケージの作成と配布
これは、コードからRパッケージをすばやく作成する方法についてのコンパクトなガイドです。徹底した文書は利用可能な場合にはリンクされ、状況の詳細な知識が必要な場合は、読まれるべきです。詳細については、「 備考 」を参照してください。
コードが存在するディレクトリは./
と表記され、すべてのコマンドはこのフォルダ内のRプロンプトから実行されます。
ドキュメンテーションの作成
あなたのコードのドキュメントは、LaTeXに非常に似た形式でなければなりません。
ただし、プロセスを簡略化するためにroxygen
というツールを使用します。
install.packages("devtools")
library("devtools")
install.packages("roxygen2")
library("roxygen2")
roxygenの全マンページはこちらから入手できます 。これはdoxygenと非常によく似ています。
roxygenを使って関数を文書化する方法に関する実用的なサンプルを以下に示します。
#' Increment a variable.
#'
#' Note that the behavior of this function
#' is undefined if `x` is not of class `numeric`.
#'
#' @export
#' @author another guy
#' @name Increment Function
#' @title increment
#'
#' @param x Variable to increment
#' @return `x` incremented of 1
#'
#' @seealso `other_function`
#'
#' @examples
#' increment(3)
#' > 4
increment <- function(x) {
return (x+1)
}
そしてここに結果が出ます。
また、パッケージに関する完全なガイドであるビネットを作成することも推奨されます(トピックの作成を参照してください)。
パッケージスケルトンの構築
あなたのコードが例えば./script1.R
と./script2.R
ファイルに書かれていると仮定して、あなたのパッケージのファイルツリーを作るために次のコマンドを起動してください:
package.skeleton(name="MyPackage", code_files=c("script1.R","script2.R"))
その後、. ./MyPackage/man/
すべてのファイルを削除します。今すぐドキュメントをコンパイルしてください:
roxygenize("MyPackage")
また、. ./
起動したコマンドプロンプトから、 R CMD Rd2pdf MyPackage
を使用してマニュアルからリファレンスマニュアルを生成する必要があります。
パッケージプロパティのエディション
1.パッケージの説明
必要に応じて./MyPackage/DESCRIPTION
変更します。 「 Package
、「 Version
、「 License
、「 Description
、「 Title
、「 Author
、および「 Maintainer
Author
の各フィールドは必須であり、もう1つはオプションです。
パッケージが他のパッケージに依存する場合は、 Depends
(R version <3.2.0)またはImports
(R version> 3.2.0)という名前のフィールドに指定します。
2.オプションのフォルダ
いったんスケルトンビルドを./MyPackage/
すると、. R/
./MyPackage/
R/
はR/
とman/
subfoldersしかありませんでした。しかし、それは他のものを持つことができます:
-
data/
:ここでは、あなたのライブラリが必要とする、コードではないデータを置くことができます。.RData
拡張子を持つデータセットとして保存する必要があります。また、実行時にdata()
およびload()
メソッドを使用してロードできます。 -
tests/
:このフォルダ内のすべてのコードファイルは、インストール時に実行されます。エラーがある場合、インストールは失敗します。 -
src/
:必要なC / C ++ / Fortranソースファイル(Rcpp
を使って...)。 -
exec/
:他の実行ファイル。 -
misc/
:ほとんどすべてのために。
ファイナライズとビルド
./MyPackage/Read-and-delete-me
を削除することができます。
今のように、パッケージはすぐにインストールできます。
devtools::install("MyPackage")
できます。
パッケージをソースtarballとしてビルドするには、 コマンドプロンプトで./
R CMD build MyPackage
を実行する必要があります
あなたのパッケージの配布
Githubを通して
単にmypackageと呼ばれる新しいリポジトリを作成し、中にすべてのものをアップロードMyPackage/
マスターブランチに。ここに例があります 。
そうすれば誰でもdevtoolsでパッケージをgithubからインストールできます:
install_package("MyPackage", "your_github_usename")
CRANを介して
パッケージはCRANリポジトリポリシーに準拠する必要があります 。あなたのパッケージはクロスプラットフォーム(いくつかの非常に特殊なケースを除く)でなければなりませんが、 R CMD check
テストに合格する必要があります。
ここに提出書式があります。ソースtarballをアップロードする必要があります。
ビネットを作成する
ビネットはあなたのパッケージの長い形式のガイドです。関数のドキュメントは必要な関数の名前を知っていれば素晴らしいですが、そうでなければ役に立たないのです。ビネットは、書籍の章や学術論文のようなものです。あなたのパッケージが解決するように設計された問題を記述し、それを解決する方法を読者に示すことができます。
ビネットは完全にマークダウンで作成されます。
要件
- Rmarkdown:
install.packages("rmarkdown")
- Pandoc
ビネット作成
devtools::use_vignette("MyVignette", "MyPackage")
./vignettes/MyVignette.Rmd
あなたのビネットを編集できるようになり./vignettes/MyVignette.Rmd
。
あなたのビネットのテキストはMarkdownとしてフォーマットされています。
元のMarkdownに追加されたのは、Rコードを実行し、実行し、出力をキャプチャし、フォーマットされたMarkdownに変換するタグです。
```{r}
# Add two numbers together
add <- function(a, b) a + b
add(10, 20)
```
次のように表示されます:
# Add two numbers together
add <- function(a, b) a + b
add(10, 20)
## [1] 30
したがって、あなたのビネットで使用するすべてのパッケージは、. ./DESCRIPTION
依存関係としてリストされなければなりません。