サーチ…


前書き

このトピックでは、devtoolsパッケージを使用してRパッケージを最初から作成する方法について説明します。

備考

  1. パッケージを作成するための公式のRマニュアル
  2. roxygen2リファレンスマニュアル
  3. devtoolsリファレンスマニュアル

パッケージの作成と配布

これは、コードから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依存関係としてリストされなければなりません。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow