我正在编写一个在服务器上做一些工作的软件包。我有一个更新表的脚本,但我的目的不是手动和不频繁地运行它。它不是一个需要进入命名空间或任何东西的函数,只是一个脚本。
问题是,当我调用 roxygen2::roxygenize()
当我试图开发交互式功能时,它运行这个脚本需要一段时间,这非常烦人。我知道我可以添加 \donotrun{}
在我的文档中的例子周围,但在这种情况下,这并不太合理。有什么办法可以让 roxygen 不去执行这个吗?
我曾考虑过把它变成一个函数,这样执行它就只需定义函数体,但这似乎有点偏颇。
如果有任何建议,那就太好了
对于新的访问者来说,这不是roxygen文档内的函数代码,对于这一点,最好是围绕着 \donotrun
如
#' @examples
#' \donotrun{
#' something_goes_here()
#' }
myfunction <- function(...) {
不过在这种情况下,它是在软件包本身中包含一些文件。
您将文件放置在 ./inst/
目录下的包一起安装,但不认为它们是R脚本(或任何东西)。这方面的权威参考文献是从 "编写R扩展部分", 第1.1.5节 包的子目录. 这将会在每台通过 install.packages(...)
.
如果你想要的东西在包里 源头 但不与软件包本身一起安装,我建议你在软件包的根目录下放置一个名为 .Rbuildignore
(参考:同样的链接,现在是1.3.2构建软件包压缩包一节)。与这些模式相匹配的文件将不会被包含在压缩包中。无论您是否将实际文件放在 ./inst/
或其他任何地方完全由你决定:如果是在 .Rbuildignore
文件,那么它将被排除在 tar 包中(因此最终用户可以看到它)。