我正在编写一个R包,该包按照Sebastian Warnholz's modules package分为模块。每个函数都组织在例如R/m1/fun.R
下的其自己的R文件中。这些文件中的每个文件都以roxygen代码开头。这些模块在另一个文件R/modules.R
中定义。这是该文件的结构方式:
#' Module 1
#' @name m1
#' @export
m1 <- modules::module({
expose("R/m1/fun.R")
expose("R/m1/foo.R")
})
该程序包检查并生成干净,我可以通过发出m1$fun()
和m1$foo()
来调用函数。但是,无论我如何尝试(即?
或help()
与功能名称,模块前缀为m1$
的组合)都无法调用帮助文件。 / p>
实际上,我什至不能期望帮助文件在那里,因为在运行devtools::document()
之后,roxygen代码不会转换为man/*.Rd
文件。所以我想我的问题是让devtools::document()
搜索到R
子文件夹。不过,运行devtools::document("R/m1")
并不能解决问题。
一种有效的方法是将功能脚本放在父文件夹R/
中,但随后它们失去了模块范围,可以在程序包级别看到帮助文件(而不是功能本身)。此外,“用法”部分将声明“ foo(...)”而不是“ m1 $ foo(...)”,这听起来不够,但我不确定当前是否可解决。这是我第一次使用模块,因此我想知道是否有一种更干净的方式来组织功能和帮助文件。