我正在接管一个现有的包。在 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 将不起作用,因为如果不在每个函数上方的 roxygen 代码中,devtools::document("mypackage")
它将覆盖它。@export
问题:将 @export 添加到包中每个函数的 roxygen 文档中的最有效方法是什么?
一个更好的选择是相应地解析NAMESPACE
和解析export
和method
语句。