【发布时间】:2020-05-13 06:02:17
【问题描述】:
我正在编写一个在服务器上执行某些工作的包。我有一个更新表格的脚本,但我的意图不是手动和不频繁地运行它。它不是一个需要进入命名空间或任何东西的函数,只是一个脚本。
问题是,当我调用roxygen2::roxygenize() 时,它会运行此脚本并需要一段时间才能运行,这在我尝试开发交互式功能时非常烦人。我知道我可以在文档中的示例周围添加\donotrun{},但这在这种情况下不太有意义。有没有办法告诉 roxygen 不要打扰执行这个?
我考虑过把它变成一个函数,这样执行它就可以定义函数体,但这似乎有点偏颇。
任何建议都会很棒
【问题讨论】:
-
确定应该执行哪个
@examples脚本不是roxygen2的工作。为什么在这里添加\donotrunnot 有意义?据我所知,这正是该宏的用途。 -
@r2evans 我试图抑制的部分不是示例的一部分,而是整个 .r 文件。该脚本不打算以交互方式运行,它只是生成一些运行其他函数所必需的数据。
-
也许您可以将其保存为
./inst/file.R,而不是./R/file.R。这些文件不是源文件,而是在安装时包含在包目录中。 -
对于我的几个(内部)项目,我包括
./inst/process.R,它介绍了该包(和/或依赖包)中功能的使用。我不将它用作小插图,尽管有人可能会从该文件中推断出一些包语义。它永远不会在包检查、文档或加载过程中获取或运行,但在任何情况下用户都可以使用该文件。 (请注意,该文件将在您的目录中为./inst/file.R,但是当有人install.packages(...)时,它将是./file.R,而不是在inst子目录中。) -
@r2evans 效果很好。我认为最好不要将此文件与其他安装一起提供,因为我想控制如何创建该数据集。
inst目录是什么意思?