r roxygen s4

¿Cómo documentar correctamente los métodos S4 “[” y “[<-“ usando roxygen?



(3)

A continuación, publiqué un mini ejemplo en el que quiero escribir documentación para un método “[“ para una clase S4. ¿Alguien sabe cómo documentar correctamente un método para el genérico "[" utilizando roxygen y S4?
Aparece una advertencia al revisar el paquete después de la construcción (ver más abajo).

#'' 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") } )

Extracto del cheque del paquete:

* 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''.


A partir de roxygen2> 3.0.0, ya no necesita trabajar alrededor y solo necesita:

#'' Extract parts of testClass. #'' setMethod("[", signature(x = "testClass", i = "ANY", j="ANY"), function (x, i, j, ..., drop){ print("void function") } )


Finalmente lo descubrí más o menos. Al menos funciona ahora:

#'' 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") } )


Para lo que vale, en el caso de una función de reemplazo, querrá algo como lo siguiente:

#'' 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 })