r语言 - 使用devtools::install_local构建vignette -在一个vignette中创建的全局变量在



我有一个带有两个降价插图的R包。

在第一个名为"aaa_1"的小插图中,我定义了一个变量var。在第二个名为"aaa_2"我使用在第一个小插图中创建的变量。

当使用

安装包时
devtools::install_local("package", build_vignette = TRUE)

它构建了两个小插曲,但是这是怎么可能的呢?为什么变量var对第二个小插曲可用?我原以为安装会失败,因为var没有在"aaa_2"中定义。在小插图中定义的变量是全局变量吗?

我能做些什么来避免这种情况吗?

这只是一个问题,因为小插图是按字母顺序创建的。如果名称的顺序相反,安装就会失败。这两个小插图看起来像这样:

"aaa_1"


title: "aaa_1"
output: rmarkdown::html_vignette
vignette: >
%VignetteEngine{knitr::knitr}
%VignetteIndexEntry{aaa_1}
%usepackage[UTF-8]{inputenc}
---

```{r}
a = data.frame(
"hello" = c("hi","hi", "hi"),
"goodbye" =  c("bye", "bye", "bye")
)
print(a)
```

"aaa_2"


title: "aaa_2"
output: rmarkdown::html_vignette
vignette: >
%VignetteEngine{knitr::knitr}
%VignetteIndexEntry{aaa_2}
%usepackage[UTF-8]{inputenc}
---
```{r}
print(a)
a2 <- a[, "hello"]
```

我得到与您使用标准R CMD buildR CMD INSTALL相同的结果,所以我猜devtools正在使用引擎盖下的标准工具,或者试图模仿它们。我同意你的观点,这种情况不应该发生:插图应该是独立的。

如果我运行R CMD checkdevtools::check(),它会发出警告:

> checking re-building of vignette outputs ... WARNING
Error(s) in re-building vignettes:
...
--- re-building ‘Untitled2.Rmd’ using rmarkdown
--- finished re-building ‘Untitled2.Rmd’

--- re-building ‘aaa_1.Rmd’ using knitr
--- finished re-building ‘aaa_1.Rmd’

--- re-building ‘aaa_2.Rmd’ using knitr
Quitting from lines 11-14 (aaa_2.Rmd) 
Error: processing vignette 'aaa_2.Rmd' failed with diagnostics:
object 'a' not found
--- failed re-building ‘aaa_2.Rmd’

SUMMARY: processing the following file failed:
‘aaa_2.Rmd’

Error: Vignette re-building failed.
Execution halted

所以我想这回答了你的问题:为了避免这种情况,确保你的包通过检查,没有警告或错误。

相关内容

  • 没有找到相关文章

最新更新