【发布时间】:2013-01-29 16:22:48
【问题描述】:
我正在接管一个现有的包。在 R 需要显式导出函数之前,该包是用 .Rd 文档编写的。
我的第一步是使用 Rd2roxygen 将文档转换为 roxygen(非常感谢 Yihui 和 Hadley 提供的这个软件包!)。
但是现在这个包不工作了,因为函数没有被导出。我宁愿默认导出所有功能。在这一点上,我的一般方法似乎是确定一个可以为每个函数找到的正则表达式(##' @return 将是一个很好的目标)并在它上面的行中插入##' @export,
在伪代码中:
for all files in the `R/` directory{
for each line starting in `##' @return`{
insert `##' @export` in the preceeding line
}}
结果将是替换:
##' @return something
与
##' @export
##' @return something that varies with each function
获取函数列表并将它们添加到 NAMESPACE 将不起作用,因为如果 @export 不在每个函数上方的 roxygen 代码中,devtools::document("mypackage") 将覆盖它。
问题:将@export 添加到包中每个函数的roxygen 文档中最有效的方法是什么?
更好的选择是解析 NAMESPACE 并相应地解析 export 和 method 语句。
【问题讨论】:
-
文档很清楚
Rd2roxygen不支持它,并且欢迎使用补丁。 (见package?Rd2roxygen)所以,如果你得到一个好的答案,你应该考虑将它作为一个补丁提交。