gpt4 book ai didi

r - 使用 roxygen2 自动记录 S4 泛型的所有方法

转载 作者:行者123 更新时间:2023-12-04 07:22:27 25 4
gpt4 key购买 nike

我正在写一个 包装使用 对于文档。我在记录 S4 方法时遇到了一些麻烦。我定义了一个泛型 方法(例如 myGeneric )和一些实现它的方法。

问题 : 有没有办法自动记录泛型的所有方法?

手动解决方案是为每种方法添加这两行(这将用于我的虚拟示例中的第一种方法):

##' @rdname myGeneric-methods
##' @aliases myGeneric,numeric,numeric,missing-method

由于我使用了很多方法,所以我必须添加很多才能满足R CMD检查。

我在 Hadley 的 Advanced R 中阅读了有关记录 S4 方法的信息 here可以使用@genericMethods:

Use @genericMethods in the generic documentation if you want an automated listing of all methods implemented for the generic.



我认为这在 roxygen2 中没有实现,或以其他名称实现。我发现的唯一关于 @genericMethods 的信息标签在 roxygen3 github here ,已停产(?)。

只是一个虚拟示例,我只记录泛型并希望自动列出所有已实现的方法:
##' @param object An object
##' @param data Numeric vector or data.frame
##' @param Fun Function. Default function is \code{sum}
##' @param ... Extra named arguments passed to FUN
##' @docType methods
##' @export
setGeneric("myGeneric", function(object, data, FUN, ...)
{standardGeneric ("myGeneric")} )

setMethod("myGeneric", c("numeric", "numeric", "missing"),
function(object, data,...) {
myGeneric(object, data, sum,...)
})
setMethod("myGeneric", c("numeric", "data.frame", "missing"),
function(object, data,...) {
myGeneric(object, as.vector(unlist(data), sum,...)
})
setMethod("myGeneric", c("numeric", "numeric", "function"),
function(object, data, FUN,...) {
## Do something
})

任何帮助将不胜感激,

亚历克斯

最佳答案

编辑:更新以反射(reflect)最新版本 roxygen2 的首选方法 - 2016 年 3 月 23 日

实际上,使用 @rdname 可以更轻松地做到这一点。在 roxygen2 :

#' @param object An object
#' @param data Numeric vector or data.frame
#' @param Fun Function. Default function is \code{sum}
#' @param ... Extra named arguments passed to FUN
#' @rdname myGeneric
#' @export
setGeneric("myGeneric", function(object, data, FUN, ...)
{standardGeneric ("myGeneric")} )

#' @rdname myGeneric
setMethod("myGeneric", c("numeric", "numeric", "missing"),
function(object, data,...) {
myGeneric(object, data, sum,...)
})

#' @rdname myGeneric
setMethod("myGeneric", c("numeric", "data.frame", "missing"),
function(object, data,...) {
myGeneric(object, as.vector(unlist(data), sum,...)
})

#' @rdname myGeneric
setMethod("myGeneric", c("numeric", "numeric", "function"),
function(object, data, FUN,...) {
## Do something
})

使用 roxygen2 版本 5.0.1 对我有用吗

关于r - 使用 roxygen2 自动记录 S4 泛型的所有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com