我正在使用r为文档编写roxygen2包。记录S4方法时遇到了一些麻烦。我已经定义了一个通用的s4方法(例如myGeneric
)和几个实现它的方法。
问题:有没有办法自动记录通用的所有方法?
手动解决方案是为每个方法添加这两行(这将是我的虚拟示例中的第一个方法):
##' @rdname myGeneric-methods
##' @aliases myGeneric,numeric,numeric,missing-method
由于我使用了很多方法,因此我必须添加很多来满足R CMD检查。
我在Hadley的Advanced R中读到了关于记录S4方法here的问题,可以使用@genericMethods:
如果您想要为通用实现的所有方法的自动列表,请在通用文档中使用@genericMethods。
我认为这不会在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
})
任何帮助都会非常感激,
亚历
答案 0 :(得分:8)
编辑:更新以反映最新版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的诀窍