首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使RStudio自动编译R标记下的小片段?

如何使RStudio自动编译R标记下的小片段?
EN

Stack Overflow用户
提问于 2013-10-15 02:15:57
回答 1查看 7.3K关注 0票数 31

我试图用R标记来编写R包的小片段。我正在使用R的包创作工具。

我的R大于3.0版。

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

代码语言:javascript
复制
<!--
%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{An Introduction to the bootcorrelations package}
-->

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

代码语言:javascript
复制
VignetteBuilder: knitr
Suggests: knitr

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

如何让RStudio从R标记下自动创建HTML?

我已经阅读过一辉的R包小插曲贴图,它建议使用makefile,但是最近的关于针织品的文献建议不再需要makefile。

我还意识到,我可以使用这样的命令手动创建HTML vignette:

代码语言:javascript
复制
library(knitr)
knit(input='vignettes/foo.Rmd', output='inst/doc/foo.md')
library(markdown)
markdownToHTML('inst/doc/foo.md', 'inst/doc/foo.html')

可复制的例子:

代码语言:javascript
复制
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

代码语言:javascript
复制
  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")
EN

回答 1

Stack Overflow用户

发布于 2013-10-15 04:03:48

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

1.使用build_vignettes()

正如@Hadley所指出的,从build_vignettes()包中运行devtools将生成小片段,并将它们放在包的inst/man目录中。

代码语言:javascript
复制
devtools::build_vignettes()

构建vignette意味着您可以在inst/man中获得三个版本

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

这与RStudio中的build和reload命令无关,但它是任务的一行解决方案。而且它可以很容易地合并到一个makefile中。

2.在Rstudio中使用Knit HTML

正如@TylerRinker所指出的,您只需在Rstudio中使用针织HTML即可。这将在vignettes目录中添加md和HTML编织版本的rmd。

这也与构建过程无关,但正如@TylerRinker所指出的那样,您通常不希望将小片段与主构建过程绑定在一起。这还可以为您提供一个md文件,它可以很好地显示github上的vignette,尽管http://htmlpreview.github.com/是在github上显示HTML的一个选项。

3.构建源代码包并从压缩文件中提取

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

这是在关于编写软件包的正式文件中描述的,它指示您使用R CMD build生成PDF和HTML。

所以有可能

  1. 建源
  2. 解压缩tar.gz文件
  3. 浏览并打开结果文件
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19372260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档