gpt4 book ai didi

r - 如何让RStudio自动编译R Markdown Vignettes?

转载 作者:行者123 更新时间:2023-12-01 19:12:13 24 4
gpt4 key购买 nike

我正在尝试使用 R Markdown 编写 R 包小插图。我正在使用 R Studio 的包创作工具。

我的 R 版本高于 3.0。

我的 vignettes 文件夹中有一个 .Rmd 文件,其顶部包含以下文本:

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

我的 DESCRIPTION 文件中有以下内容:

VignetteBuilder: knitr
Suggests: knitr

当我在 RStudio 中清理并构建或构建并重新加载包时,会显示插图源,但不会显示 HTML(即 inst/man 中没有 HTML 文件)。

enter image description here

如何让 RStudio 自动从 R Markdown Vignette 创建 HTML?

我已通读 Yihui's post on R Package Vignettes with Markdown它建议使用 makefile,但这是最近的 documentation about 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")

最佳答案

更新:横向思考,至少有三个选择。

1。使用build_vignettes()

正如 @Hadley 指出的,从 devtools 包运行 build_vignettes() 将构建小插图并将其放置在 inst/man 目录中包的。

devtools::build_vignettes()

构建小插图意味着您在 inst/man 中获得三个版本:

  1. Rmd 来源
  2. 针织或编织的 HTML 小插图
  3. 以及代码块中的 R 代码

这与 RStudio 中的构建和重新加载命令无关,但它是该任务的单行解决方案。而且它可以很容易地合并到 makefile 中。

2。在 Rstudio 中使用 Knit HTML

正如 @TylerRinker 所说,您可以在 Rstudio 中使用 Knit HTML。这会将 rmd vignette 的 md 和 HTML knitted 版本添加到 vignettes 目录中。

这也与构建过程无关,但正如 @TylerRinker 指出的那样,通常您不希望小插图与主构建过程相关联。这还有一个好处是为您提供一个 md 文件,该文件可以是在 github 上显示小插图的不错选择,尽管 http://htmlpreview.github.com/是在 github 上显示 HTML 小插图的选项。

3。构建源码包并从压缩文件中解压

RStudio中的

Build - Build Source Package对应于R CMD build。运行时,会创建一个压缩的 tar.gz 文件,其中在 inst/doc 目录中包含原始 rmd vignette 文件的 Rmd、R 和 HTML 文件。

这在 official documentation on writing package vignettes 中有描述。它指示您使用 R CMD build 生成 PDF 和 HTML 小插图。

所以有可能

  1. 构建源代码
  2. 解压 tar.gz 文件
  3. 浏览并打开生成的文件

关于r - 如何让RStudio自动编译R Markdown Vignettes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com