gpt4 book ai didi

r - 使用 devtools::install_local 构建小插图 - 在一个小插图中创建的全局变量在另一个小插图中可用

转载 作者:行者123 更新时间:2023-12-05 02:38:08 35 4
gpt4 key购买 nike

我有一个带有两个 Markdown 小插图的 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

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

关于r - 使用 devtools::install_local 构建小插图 - 在一个小插图中创建的全局变量在另一个小插图中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69756236/

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