Ich schreibe ein r Paket mit roxygen2 für die Dokumentation. Ich habe einige Probleme, die S4-Methoden zu dokumentieren. Ich habe ein generisches s4-Verfahren (z. B. myGeneric
) und wenige Methoden definiert, die es implementieren.Dokumentieren Sie automatisch alle Methoden eines S4 generischen, mit roxygen2
Frage: Gibt es eine Möglichkeit, alle Methoden eines Generics automatisch zu dokumentieren?
Die manuelle Lösung ist es, diese beiden Linien für jede Methode hinzuzufügen (dies für das erste Verfahren in meinem Dummy Beispiel wäre):
##' @rdname myGeneric-methods
##' @aliases myGeneric,numeric,numeric,missing-method
Da ich eine Menge von Methoden verwenden, ich habe eine hinzufügen viel, um die R CMD-Prüfung zu erfüllen.
las ich in Hadley Advanced R über S4 Methoden here dokumentieren, dass man @genericMethods verwenden können:
Verwenden @genericMethods in der allgemeinen Dokumentation, wenn Sie eine automatische Auflistung aller Methoden für die Umsetzung wollen generisch.
Ich denke, das ist nicht in roxygen2
implementiert oder unter einem anderen Namen implementiert. Das einzige, was ich über das @genericMethods
-Tag fand, war das roxygen3 github here, das (?) Eingestellt wurde.
nur ein Dummy Beispiel, wo ich nur die generische Dokumentation und wollen, dass alle implementierten Methoden automatisch aufgelistet:
##' @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
})
Jede Hilfe wird sehr geschätzt werden,
alex
Ich kenne keine Möglichkeit, automatisch alle Methoden dokumentieren eines generischen (vielleicht wenn '@ genericMethods' implementiert wird). Ich verwende stattdessen '# '@describeIn myGeneric' vor all meiner spezifischen Methode. Dies beantwortet nicht genau Ihre Frage, aber ich denke, es ist der einzige Weg, um es für den Moment zu erreichen. – jomuller
Ich suchte im [offiziellen GitHub Repo] (https://github.com/klutometis/roxygen) von roxygen und gründete kein roclet, das diesen Job tun sollte. Ich denke, dass die vollständige Roclet-Liste in [/roygen/R/rocled-rd.R](https://github.com/klutometis/roxygen/blob/d564939daed853988eaa72bb034536c37d7e097c/R/roclet-rd.R) steht. – jomuller
Ich habe ein [Problem mit GitHub] (https://github.com/klutometis/roxygen/issues/264) hinzugefügt. – jomuller