[R] Getting code for functions

Sundar Dorai-Raj sundar.dorai-raj at PDF.COM
Mon Sep 27 18:31:09 CEST 2004



Peter Flom wrote:

> Hello
> 
> Pardon for the elementary question, I did try searching the archives
> with various terms, but to no avail.  I am using R1.9.1 on a windows
> machine
> 
> One of the great advantages of R (to me, anyway) is being able to see
> the code for a function , e.g. by typing sd one sees the code for
> getting a standard deviation.
> 
> However, for many functions this only provides info. including
> UseMethod, eg. typing mosaicplot yields
> 
> function (x, ...) 
> UseMethod("mosaicplot")
> <environment: namespace:graphics>
> 
> 
> How can I see the code for such functions?
> 
> 

Peter,

UseMethod implies that mosaicplot is a generic method. You can see which 
classes allow mosaicplot by using ?methods:

 > methods("mosaicplot")
[1] mosaicplot.default* mosaicplot.formula*

     Non-visible functions are asterisked
 >

Now that last statement tells me that mosaicplot.default and 
mosaicplot.formula are not exported objects in the graphics namespace. 
To actually see the code for say the default mosaicplot, use 
?getAnywhere (or ?getS3method):

 > getAnywhere("mosaicplot.default")
A single object matching 'mosaicplot.default' was found
It was found in the following places
   registered S3 method for mosaicplot from namespace graphics
   namespace:graphics
with value

function (x, main = deparse(substitute(x)), sub = NULL, xlab = NULL,
     ylab = NULL, sort = NULL, off = NULL, dir = NULL, color = FALSE,
     shade = FALSE, margin = NULL, cex.axis = 0.66, las = par("las"),
     type = c("pearson", "deviance", "FT"), ...)
{
<snip>

}

You can learn about object-oriented programming in R from several 
places, but "Writing R Extensions" might be a good place to start.

--sundar




More information about the R-help mailing list