简短版:我能使用roxygen
模拟stats
包中Normal
的文档吗?
详细版:我正在开发一个包,并试图通过将具有共同输入/参数的多个函数收集在一个标题下,使文档更易读,这将是对该组的通用引用。每个函数仍应独立地提供给最终用户。
我以Normal
的文档为灵感,其中提供了许多与正态分布相关的方法,例如stats::dnorm()
。
当我搜索?dnorm
时,我发现帮助部分的名称为Normal
,即使Normal
似乎不是导出的函数或对象也是如此。
我尝试将以下内容放入funs.R
:
##' @rdname funs
##' @name funs
##' @aliases sum1
##' @aliases prod1
##' @title Two functions
##' @param x X
##' @param y Y
##' @return sum1 returns x+y
##' \cr
##' prod1 returns x*y
##' @examples
##' sum1(3,4)
##' prod1(3,4)
##' @export
sum1 <- function(x,y) x+y
##' @export
##' @rdname funs
prod1 <- function(x,y) x*y
接下来我在上述代码上运行roxygen2
。
问题在于,当在此最小化的包上运行R CMD check
时,它会发现该包无法加载,因为undefined exports: funs
。
如果我删除##' @name funs
这一行,则包通过R CMD check
,但帮助部分的名称将是sum1
而不是funs
。
如果我在示例部分下添加以下内容:
##' @export
funs <- function(x) x
它通过了,我可以看到帮助文本以我想要的方式格式化,但是为了正确显示名称,我导出了一个无意义的函数。
我试图查看stats
的源帮助文件,以了解如何实现它,但它们以.Rdx
格式编写,我不确定如何显示。
另外,关于相关问题,Normal
是什么类型的事物?
require(stats)
getAnywhere("Normal")
> no object named 'Normal' was found
更新:
@TylerRinker - 恐怕这是我尝试的第一件事情。 这将函数合并为一个.Rd
文件,但相关帮助的名称与第一个函数的名称相同,而这正是我试图避免的:
##' sum
##' gives the sum
##' @param x X
##' @param y Y
##' @return sum1 returns x+y
##' @examples
##' sum1(3,4)
##' @rdname funs
##' @export
sum1 <- function(x,y) x+y
##' product
##' gives the product
##' @return prod1 returns x*y
##' @examples
##' prod1(3,4)
##' @rdname funs
##' @export
prod1 <- function(x,y) x*y
@Andrie - 这个解决方案会导致完全相同的困难,帮助的名称与第一个函数的名称相同。
也许这根本不可能......
##' @name funs
,然后它应该可以工作(我想)。 - Andrie@describeIn
选项的使用。 - zx8754