r - 构建 Vignette - R 包开发时出错
问题描述
如果这是一个明显的问题,我提前道歉,但我已经搜索了堆栈溢出以及其他非常有用的资源,例如Hadley Wickham 的R 包或这个博客,但找不到答案。
尝试build_vignettes()
在我开发的 R 包 ( myPackage
) 上运行时出现我的问题。包 ( myPackage.Rmd
) 的小插图将使用 RStudio 中的 knit 按预期创建,但是当我运行时build_vignettes()
,出现以下错误:
> devtools::build_vignettes()
Building cosni vignettes
--- re-building ‘myPackage.Rmd’ using rmarkdown
--- finished re-building ‘myPackage.Rmd’
Error: Directory '✓ Setting active project to \'path/to/package/directory/'' does not exist.
我的 myPackage.Rmd 文件的顶部是:
---
title: "A title"
date: "`r Sys.Date()`"
author: "Name"
output:
html_document:
toc: true
toc_float: true
number_sections: true
theme: "paper"
pdf_document:
toc: true
vignette: >
%\VignetteIndexEntry{A title}
%\VignetteEngine{knitr::rmarkdown}
\usepackage[utf8]{inputenc}
---
该文件位于我的包文件夹的 vignettes 文件夹中。此文件夹中还有 3 个 png 图像,在 myPackage.Rmd 文件中调用如下:
```{r, echo=FALSE, out.width = '98%', out.height='98%'}
knitr::include_graphics("an_image.png")
```#
否则,小插图仅包含文本。
该包将运行,我可以使用其中任何一个在本地安装它,devtools::build()
或者
devtools::install(build_vignettes = TRUE)
它们可以工作,但是当我运行browseVignettes("myPackage")
并单击 HTML、源代码或 R 代码时,我收到以下错误:
未找到 在此服务器上未找到请求的 URL /library/myPackage/doc/myPackage.html。
此外,在包的说明文件中,我包含以下内容:
Suggests:
knitr,
rmarkdown
VignetteBuilder: knitr
- - - - - - 编辑 - - - - - - -
通过反复尝试使devtools::build_vignettes
工作正常,我注意到有时我会收到以下错误,而不是我提到的第一个错误:
> devtools::build_vignettes()
Building cosni vignettes
--- re-building ‘myPackage.Rmd’ using rmarkdown
--- finished re-building ‘myPackage.Rmd’
Error in if (dir_exists(path %||% "") && is_in_proj(path)) { :
missing value where TRUE/FALSE needed
解决方案
我解决了更新包 devtools 和 usethis 的第二个错误。
推荐阅读
- python - 为什么我的变量在使用 pop() 方法时没有更新?
- javascript - 反应箭头功能组件 - 未定义 setState
- java - 无法在 java 程序中导入 RClusteredMap
- pdf - 在保留页面的同时在 Chromium 中重新加载 PDF
- django - AttributeError:“CreateBatchForm”对象没有属性“get”
- spring-security - 使用 X509 的 SpringOauth 令牌
- java - java中的正则表达式拆分逗号分隔的字符串但忽略双引号之间的逗号
- laravel - jwt 函数在刷新页面后返回数据
- arrays - 将多维数组显示为表格
- php - 获取账户子账户树为空