Short version:我可以用roxygen模拟stats包中Normal的文档吗?

Long version:我正在开发一个软件包,并试图通过在一个标题下收集具有公共输入/参数的多个函数来提高文档的可读性,这将是对该组的一般参考.每个功能仍应独立提供给最终用户.

我的灵感来自于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.

##' @export
funs <- function(x) x

它通过了,我可以看到我想要的格式的帮助,但我正在导出一个无意义的函数,以便正确显示名称.

我不确定他们是如何用.Rdx格式显示的,但我不确定他们是如何用stats格式显示的.

另外,在一个相关的注释中,is Normal是什么样的事情?

require(stats)
getAnywhere("Normal")
> no object named 'Normal' was found

Update:

@泰勒林克——恐怕这是我第一次try .这将函数合并到一个.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
##' @aliases sum1
##' @aliases prod1
##'
##' @title Two functions of x and y
##'
##' @param x =X
##' @param y =Y
##'
##' @note \code{funs} is a generic name for the functions documented.
##' \cr
##' If called, \code{funs} returns its own arguments.
##'
##' @rdname funs
##' @export
funs <- function(x,y) {identity(c(x,y))}
##'
##' @rdname funs
##' @return \code{sum1(x,y)} returns x+y
##' @examples
##' sum1(3,4)
##' @export
sum1 <- function(x,y) x+y
##'
##' @rdname funs
##' @return \code{prod1(x,y)} returns x*y
##' @examples
##' prod1(3,4)
##' @export
prod1 <- function(x,y) x*y

请注意,格式化避免使用@usage,以避免使用a reportable bug.

我可以看出,这可能在github上得到了更好的解决.

使用@usage的更好解决方案是添加以下行:

##' @usage funs(x,y) A nominal function of x and y

第一次使用

##' @rdname funs
##' @export

然而,我试图将R CMD check次警告的次数降到最低,以安抚可能的权力,尤其是以下几点:

 Functions with \usage entries need to have the appropriate \alias
    entries, and all their arguments documented.
    The \usage entries must correspond to syntactically valid R code.

最后这可能是我阅读@usage年文档的错误.

非常感谢.

R相关问答推荐

如何根据 R 中的日期条件将数据框拆分为新的数据框

VS Code中不在全局环境中的R对象

根据 R 上的其他条目填充缺失值

使用 R 解密 PHP 中加密的消息

如何根据先前的正方形递归创建正方形?

反复计算

用逗号分隔的引号连接字符串

如何在两个不同的数据帧上运行 cor.test()

如何为每个条件添加中位数和标准差

使用 dplyr 进行动态编程 - 使用动态输入改变多个动态列

高级:为什么 ?function(){} 在 R 中有效

如何将列变成R中的列名

将一行转换成combine,c()作为r中的向量,然后用向量计算余弦相似度

R过滤多次出现但不包含特定字符串的数据

如何将行添加到 R Shiny 表

通过(非统一)名称连接两个数据集

在函数定义期间判断并保存参数变量值?

如果R中的所有值都是NA,如何选择具有最大值的行

R组回程数据列

计算每第 n 个元素的平均值