首页 > 解决方案 > 在 R 中查找模块化包函数的帮助文件

问题描述

我正在编写一个 R 包,它按照 Sebastian Warnholz 的模块包组织成模块。每个函数都组织到其自己的 R 文件中,例如R/m1/fun.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$.

实际上,我什至不能指望帮助文件在那里,因为在运行之后devtools::document(),roxygen 代码并没有转换成man/*.Rd文件。所以我想我的问题是devtools::document()搜索R子文件夹。不过,跑步devtools::document("R/m1")并不能解决问题。

有效的一件事是将函数脚本放在父文件夹中R/,但随后它们会丢失模块范围,并且可以在包级别看到帮助文件(但不是函数本身)。此外,“使用”部分将声明“foo(...)”而不是“m1$foo(...)”,这听起来不合适,但我不确定目前是否可以修复。这是我第一次使用模块,所以我想知道是否有一种更简洁的方式来组织我的函数和帮助文件。

标签: rmodulepackageroxygen2

解决方案


推荐阅读