在R

时间:2019-03-05 12:30:31

标签: r module package roxygen2

我正在编写一个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(...)”,这听起来不够,但我不确定当前是否可解决。这是我第一次使用模块,因此我想知道是否有一种更干净的方式来组织功能和帮助文件。

0 个答案:

没有答案