如何阻止R包执行.R脚本?



我正在准备包裹。在开发阶段,我想创建一个示例脚本example.R,我可以用它来检查包的不同功能。但是,我不希望在更新包时执行示例脚本。以下是我所面临的挑战:

假设我的example.R有以下代码:

print("Hello")

如果,我更新并保存我的包:

devtools::document()
# Actual Output: [1] "Hello"
# Desired Output: It should be blank. Code in Example.R script should not be executed  

我已经尝试了各种其他选择,但到目前为止都不成功:

  1. 尝试使用@examples
#' @examples
print("Hello")

如果,我更新并保存我的包:

devtools::document()
# Actual Output: [1] "Hello"
# Desired Output: It should be blank. Code in Example.R script should not be executed  
  1. 尝试使用dontrun{}
#' dontrun{
print("Hello")
#'}

如果,我更新并保存我的包:

devtools::document()
# Actual Output: [1] "Hello"
# Desired Output: It should be blank. Code in Example.R script should not be executed  

唯一可行的方法是注释整个代码:

# print("Hello")

如果,我更新并保存我的包:

devtools::document()
# Actual Output:
# Desired Output: It should be blank. Code in Example.R script should not be executed  

注释是具有挑战性的,因为我有多行代码,我将在开发阶段不断更改和编辑。因此,我需要一个更简单的选项。

如果您查看编写R扩展软件包手册,它提供了三个基本步骤:R CMD build创建tarball,R CMD INSTALL安装它(不是您的目标),R CMD check在开发期间检查它。它们都提供了大量的开关来调整行为。使用它们——例如,我经常使用R CMD check --no-manual --no-vignettes来跳过pdf/latex部分。

并且R CMD check具有您正在寻找的--no-examples标志。我不是devtools的活跃用户,但我怀疑它也为您提供了这些选项的传递。最坏的情况下,如果没有,就用标准工具。(在RStudio中,你会发现一个开关,你可以像在命令行中一样设置R CMD ...调用的选项。)

(在狭义的停止示例中,我一直忘记当前的内容,但您可以尝试所有dontrun{},donttest{},…以及对您设置的环境变量的显式条件。所有这些都将在代码中可见,但可能不是您想在文档中显示的内容。

相关内容

  • 没有找到相关文章

最新更新