设置带有{roxygen2}注解的新{box}模块

plicqrtu  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(97)

我对{box}和{roxygen 2}都是新手,而且从来没有写过软件包--所以请耐心等待。我有一个脚本,里面有一个小函数,我已经验证了它在我这边是有效的。它位于我创建的一个定制文件夹中,叫做R,在“package”文件夹中。例如“Module 1/R/functionscript1.R”。该脚本包含我认为需要的所有{roxygen 2}注解位,包括#' @export。尽管阅读许多博客,我还是不太明白接下来的阶段。如何将其转换为完整文档化的{box}模块?
我试过将我的工作目录设置为Module 1目录,然后使用devtools::document(),错误提示我找不到包的根目录(" Is . inside a package?")。没有任何版本的box::use()能做我认为它应该做的事情。我遗漏了什么?请像我是一个蹒跚学步的孩子一样解释.....
谢谢

vlju58qv

vlju58qv1#

有了'box',就不需要调用devtools::document()了。实际上,您可以从错误消息中看到它不起作用。
只需要在模块中编写文档注解,当你现在加载模块时,你就可以显示它的文档了。
假设您的Module1/R/functionscript.R如下所示:

#' Some test function
#' @param n a number
#' @return the modified number
#' @export
modify = function (n) {
  n * 2 - 1
}

然后你就可以加载你的模块了(注意,在使用模块的时候,目录名中有R有点奇怪,因为它会成为模块名的一部分):

box::use(./Module1/R/functionscript)

加载模块后,您可以使用它:

functionscript$modify(5)
# [1] 9

您可以通过box::help显示其文档:

box::help(functionscript$modify)

这将显示帮助,例如:

相关问题