30

R Markdown を使用して R パッケージ ビネットを作成しようとしています。R Studio のパッケージ オーサリング ツールを使用しています。

バージョン 3.0 以上の R を使用しています。

vignettes上部に次のテキストを含む.Rmd ファイルがフォルダーにあります。

<!--
%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{An Introduction to the bootcorrelations package}
-->

私のDESCRIPTIONファイルには次のものがあります。

VignetteBuilder: knitr
Suggests: knitr

RStudio でパッケージをクリーン アンド ビルドまたはビルドしてリロードすると、ビネット ソースは表示されますが、HTML は表示されません (つまり、HTML ファイルが にありませんinst/man)。

ここに画像の説明を入力

RStudio に R Markdown Vignette から HTML を自動的に作成させるにはどうすればよいですか?

Markdown を使用した R Package Vignettes に関する Yihui の投稿を読んだところ、makefile を使用することが提案されていますが、knitr vignettes に関するこの最近のドキュメントでは、makefile が不要になっていることが示唆されています。

また、次のようなコマンドを使用して HTML ビネットを手動で作成できることにも気付きました。

library(knitr)
knit(input='vignettes/foo.Rmd', output='inst/doc/foo.md')
library(markdown)
markdownToHTML('inst/doc/foo.md', 'inst/doc/foo.html')

再現可能な例:

Vectorize(dir.create)(c("test", "test/R", "test/man", "test/vignettes"))

cat(
  'Package: test
Title: Test pkg
Description: Investigate how to auto-compile markdown vignettes
Version: 0.0-1
Date: 2015-03-15
Author: Jeromy Anglim
Maintainer: Jeromy Anglim <a@b.com>
Suggests: knitr
License: Unlimited
VignetteBuilder: knitr',
  file = "test/DESCRIPTION"
)

cat(
  '---
title: "Introduction"
author: "Jeromy Anglim"
date: "`r Sys.Date()`"
output: html_document
---

<!--
%\\VignetteEngine{knitr::rmarkdown}
%\\VignetteIndexEntry{Introduction}
-->

# Introduction

A sample vignette!

```{r}
1 + 1
```',
  file = "test/vignettes/intro.Rmd"
)

cat(
  "#' Nothing
#' This function is only needed so that roxygen generates a NAMESPACE file.
#' @export
nothing <- function() 0",
  file = "test/R/nothing.R"
)

library(roxygen2)
library(devtools)

roxygenise("test")
build("test")
4

1 に答える 1

17

更新:側面から考えると、少なくとも 3 つのオプションがあります。

1. build_vignettes() を使用する

@Hadley が指摘しているようにbuild_vignettes()、パッケージから実行devtoolsするとビネットが作成され、パッケージのinst/manディレクトリに配置されます。

devtools::build_vignettes()

ビネットを作成すると、次の 3 つのバージョンが得られますinst/man

  1. Rmd ソース
  2. 編み物または織り物の HTML ビネット
  3. コード ブロック内の R コード

これは、RStudio のビルドおよびリロード コマンドとは関係ありませんが、タスクに対する 1 行のソリューションです。そして、簡単に に組み込むことができますmakefile

2.RstudioKnit HTMLでの利用

@TylerRinker が指摘しているように、Rstudio で Knit HTML を使用できます。これにより、rmd ビネットの md と HTML の両方の編まれたバージョンがvignettesディレクトリに追加されます。

これもビルド プロセスには関連付けられていませんが、@TylerRinker が指摘するように、ビネットをメインのビルド プロセスに関連付けたくない場合がよくあります。http://htmlpreview.github.com/は github で HTML ビネットを表示するためのオプションですが、これには、github でビネットを表示するための優れたオプションとなる md ファイルが提供されるという利点もあります。

3. ソース パッケージをビルドし、圧縮ファイルから抽出する

Build - Build Source PackageRStudio では に対応しR CMD buildます。実行すると、ディレクトリに元の rmd ビネット ファイルの Rmd、R、および HTML ファイルを含む圧縮tar.gzファイルが作成されます。inst/doc

これは、PDF および HTML ビネットを生成するために使用するように指示するパッケージ ビネットの作成に関する公式ドキュメントで説明されています。R CMD build

だからそれは可能です

  1. ビルドソース
  2. tar.gz ファイルを解凍します。
  3. 結果のファイルを参照して開きます
于 2013-10-15T04:03:48.083 に答える