Re: [R] Finding code for R functions

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Wed 19 Oct 2005 - 09:00:02 EST

Wolfrum, Ed wrote:
> Greetings,
>
> I am trying to figure out how to find the source code for R functions. I
> am specifically interested in finding the code for the "prcomp"
> function. I know that typing the function name without parenthesis will
> lead to the code (or to a .Internal or .FORTRAN or .C call). However, I
> don't really understand what is going on. For example, typing "mean"
> gives a "UseMethod" response, while typing "mean.default" give the
> actual code:
>
>

>>mean

>
> function (x, ...)
> UseMethod("mean")
> <environment: namespace:base>
>
>>mean.default

>
> function (x, trim = 0, na.rm = FALSE, ...)
> ---SNIP---
> }
> <environment: namespace:base>
>
> Why is this? What does "mean.default" mean? I tried the same thing with
> "prcomp". With the stats package loaded, I cannot get to the source code
> for "prcomp".
>
>
>>require(stats)

>
> [1] TRUE
>
>>prcomp

>
> function (x, ...)
> UseMethod("prcomp")
> <environment: namespace:stats>

That is the source for prcomp. It's a one-liner, that says to call the prcomp method for whatever type of x you're passing in. As Bert said, you need to read up on methods.

>

>>prcomp.default

>
> Error: object "prcomp.default" not found

Notice that prcomp lives in "namespace:stats"? That's the first place to look for prcomp methods. Besides getAnywhere which Bert suggested, you can try

stats:::prcomp.default

to see the method. (Methods aren't necessarily in the same namespace as the generic, but that's the most common place for them.)

Duncan Murdoch
>
> How do I find the prcomp code? Are there general rules for finding the
> source code for functions that I should know?
>
> Thanks in Advance,
>
> Edward J. Wolfrum, Ph.D.
> National Renewable Energy Laboratory
> Golden, Colorado
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Oct 19 09:09:58 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 19:05:45 EST