短版:我可以使用Normal
包中的文档来模拟吗?stats
roxygen
长版:我正在开发一个包,并试图通过在一个标题下收集许多具有通用输入/参数的函数来使文档更具可读性,这将是对该组的通用引用。每个功能仍应可供最终用户独立使用。
我以文档为灵感,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 - 这个解决方案导致完全相同的困难,帮助的名称与第一个函数相同。
也许这只是不可能的......