[R] Finding code for R functions
Duncan Murdoch
murdoch at stats.uwo.ca
Wed Oct 19 01:00:02 CEST 2005
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 at 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
More information about the R-help
mailing list