16.7 R パッケージのビネット

R パッケージの開発を経験したか, プロジェクトで自作関数の明瞭なドキュメントや厳格なテストが要求されたなら, プロジェクトを R パッケージと結びつけてみてはどうでしょうか. R パッケージの作り方が分からないなら, RStudio IDE でメニューバーの File -> New Project をクリックし, プロジェクトの種類に R パッケージを選ぶことで簡単に始めることができます.

プロジェクトの管理に R パッケージを使うことには多くの利益があります. 例えば data/ フォルダにデータを置き, R/ に R コードを書き, 例えば roxygen2 パッケージ (Wickham, Danenberg, et al. 2021) を使用して, ドキュメントを man/ に生成し, test/ には単体テストを追加できます. R Markdown のレポートなら vignette/ にパッケージのビネットとして書くことができます. ビネット内ではデータセットを読み込みパッケージ内の関数を呼び出せます. (R CMD build コマンドか RStudio で) パッケージをビルドする時に, ビネットは自動でコンパイルされます.

R Markdown でパッケージのビネットを作成するのに最も簡単な方法は, RStudio のメニュー File -> New File -> R Markdown -> From Templateを経由するものです (図16.4参照). それから rmarkdown パッケージから “Package Vignette” を選択すると, ビネットのテンプレートが得られます. テンプレートの, タイトル・著者・その他のメタデータを変更したら, レポートの本文を書き始めましょう.

RStudio でパッケージのビネットを作成する

図 16.4: RStudio でパッケージのビネットを作成する

他の方法としては, usethis (Wickham, Bryan, and Barrett 2021) をインストールし usethis::use_vignette() 関数を使ってビネットのスケルトンを作成できます. 以下はパッケージのビネットの YAML フロントマターの典型的な姿です.

---
title: "ビネットのタイトル"
author: "ビネットの著者"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{ビネットのタイトル}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

title フィールドと \VignetteIndexEntry{} コマンドの両方で, ビネットのタイトルを変更しなければならないことに注意してください. 上記のビネット情報の他にも, パッケージの DESCRIPTION ファイルにさらに2つすべきことがあります.

  1. DESCRIPTION ファイルに VignetteBuilder: knitr を指定する.

  2. DESCRIPTION ファイルに Suggests: knitr, rmarkdown を追加する.

ビネット出力フォーマットは HTML でなくてもかまいません. PDF でも可能なので, output: pdf_document も使えます. 他の出力フォーマットでも beamer_presentationtufte::tufte_html のような, HTML か PDF を作成するものであればどれも大丈夫です. ただし, 現時点では R は HTML と PDF のビネットのみを認識します.

参考文献

Wickham, Hadley, Jennifer Bryan, and Malcolm Barrett. 2021. Usethis: Automate Package and Project Setup. https://CRAN.R-project.org/package=usethis.
Wickham, Hadley, Peter Danenberg, Gábor Csárdi, and Manuel Eugster. 2021. Roxygen2: In-Line Documentation for r. https://CRAN.R-project.org/package=roxygen2.