[Rd] Documenting S4 classes; debugging them
John Chambers
jmc at research.bell-labs.com
Fri May 23 16:37:50 MEST 2003
Duncan Murdoch wrote:
>
> 1. I'm putting together my first package that uses S4 classes and
> objects. I'd like to document them, but I'm not sure what the
> documentation should look like, and package.skeleton doesn't produce
> any at all for the classes or methods.
Hmm, sounds as if it should.
Meanwhile, promptClass and promptMethods generate skeleton
documentation.
>
> Are there any good examples to follow?
The bioconductor packages (e.g, Biobase) have some examples.
>
> 2. How do I do the equivalent of debug(foo), when foo is an anonymous
> function being used as a method?
The S4-style trace() function allows you to insert debugging functions
(or any expressions) into functions; it has a `signature' argument that
causes the debugging to be inserted into the method with the
corresponding signature.
Usually either `browser' or `recover' are suitable functions to insert.
My canonical piece of debugging code is along the lines of:
trace("f", signature = "numeric", browser, exit = browser)
If you are really attached to debug(), you can insert an extra level of
function call; i.e., instead of:
fNumeric <- function(x)x+1
setMethod("f", "numeric", fNumeric)
and then the call to trace, do
setMethod("f", "numeric", function(x)fNumeric(x))
debug(fNumeric)
But trace() is more flexible, though requiring a bit more typing.
John
>
> Duncan Murdoch
>
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel
--
John M. Chambers jmc at bell-labs.com
Bell Labs, Lucent Technologies office: (908)582-2681
700 Mountain Avenue, Room 2C-282 fax: (908)582-3340
Murray Hill, NJ 07974 web: http://www.cs.bell-labs.com/~jmc
More information about the R-devel
mailing list