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