Comment documenter S4 « [ » et « [<- » méthodes utilisant roxygen?
Question
Ci-dessous je posté un mini exemple dans lequel je veux faire la documentation d'écriture pour
un procédé de “[“
pour une classe S4. Est-ce que quelqu'un sait comment documenter correctement une méthode de "["
générique utilisant roxygen et S4?
Je reçois un avertissement lors de la vérification du paquet après la construction (voir ci-dessous).
#' An S4 class that stores a string.
#' @slot a contains a string
#' @export
setClass("testClass",
representation(a="character"))
#' extract method for testClass
#'
#' @docType methods
#' @rdname extract-methods
setMethod("[", signature(x = "testClass", i = "ANY", j="ANY"),
function (x, i, j, ..., drop){
print("void function")
}
)
Extrait de vérification du paquet:
* checking for missing documentation entries ... WARNING
Undocumented S4 methods:
generic '[' and siglist 'testClass'
All user-level objects in a package (including S4 classes and methods)
should have documentation entries.
See the chapter 'Writing R documentation files' in manual 'Writing R Extensions'.
La solution
Au roxygen2> 3.0.0, vous ne contournements de travail de besoin et seulement besoin:
#' Extract parts of testClass.
#'
setMethod("[", signature(x = "testClass", i = "ANY", j="ANY"),
function (x, i, j, ..., drop){
print("void function")
}
)
Autres conseils
Je fini par comprendre plus ou moins. Au moins, il fonctionne maintenant:
#' An S4 class that stores a string.
#' @slot a contains a string
#' @export
setClass("testClass",
representation(a="character"))
#' extract parts of testClass
#'
#' @name [
#' @aliases [,testClass-method
#' @docType methods
#' @rdname extract-methods
#'
setMethod("[", signature(x = "testClass", i = "ANY", j="ANY"),
function (x, i, j, ..., drop){
print("void function")
}
)
Pour ce qui vaut la peine de lui, dans le cas d'une fonction de remplacement, vous voulez quelque chose comme ce qui suit:
#' An S4 class that stores a list.
#' @export
setClass("testClass",
representation(a="list"))
#' extract parts of testClass
#'
#' @name [
#' @aliases [,testClass-method
#' @docType methods
#' @rdname extract-methods
setMethod("[", signature(x = "testClass", i = "ANY", j="ANY"),
function (x, i, j, ..., drop) {
x@a[i]
}
)
#' replace names of testClass
#'
#' @name [
#' @aliases [<-,testClass-method
#' @docType methods
#' @rdname extract-methods
setReplaceMethod("names", signature(x = "testClass", value = "ANY"), definition = function (x, value) {
names(x@a) <- value
x
})
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow