Re: [R] the way to look at all the codings of any functions

From: Petr Klasterecky <klaster_at_karlin.mff.cuni.cz>
Date: Mon, 18 Jun 2007 07:00:15 +0200

Someone with more experience could certainly provide a more precise answer, but basically you came across something called generic functions in R. This concept allows mean() to be called on various data structures without extra care.

See
?UseMethod
methods(mean)
getAnywhere(mean.default)

For more details see the R language definition manual.

Petr

ebi napsal(a):
> Dear SIr,
>
>
> In case of looking at the codes of the fuction, "cov",
>
> we find all the codings below. But, incase of "mean", we don't find
> the contents.
>
> Please show me the way to look at all the codings of any functions.
>
> Best regards,
> Kei
> -----------------------
>

>> cov

> function (x, y = NULL, use = "all.obs", method = c("pearson",
> "kendall", "spearman"))
> {
> na.method <- pmatch(use, c("all.obs", "complete.obs",
> "pairwise.complete.obs"))
> method <- match.arg(method)
> if (is.data.frame(y))
> y <- as.matrix(y)
> else stopifnot(is.atomic(y))
> if (is.data.frame(x))
> x <- as.matrix(x)
> else {
> stopifnot(is.atomic(x))
> if (!is.matrix(x)) {
> if (is.null(y))
> stop("supply both 'x' and 'y' or a matrix-like 'x'")
> x <- as.vector(x)
> }
> }
> if (method == "pearson")
> .Internal(cov(x, y, na.method, method == "kendall"))
> else if (na.method != 3) {
> Rank <- function(u) if (is.matrix(u))
> apply(u, 2, rank, na.last = "keep")
> else rank(u, na.last = "keep")
> if (na.method == 2) {
> ok <- complete.cases(x, y)
> x <- if (is.matrix(x))
> x[ok, ]
> else x[ok]
> if (!is.null(y))
> y <- if (is.matrix(y))
> y[ok, ]
> else y[ok]
> }
> x <- Rank(x)
> if (!is.null(y))
> y <- Rank(y)
> .Internal(cov(x, y, na.method, method == "kendall"))
> }
> else stop("cannot handle 'pairwise.complete.obs'")
> }
> <environment: namespace:stats>
>> mean

> function (x, ...)
> UseMethod("mean")
> <environment: namespace:base>
>
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>
-- 
Petr Klasterecky
Dept. of Probability and Statistics
Charles University in Prague
Czech Republic

______________________________________________
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
and provide commented, minimal, self-contained, reproducible code.
Received on Mon 18 Jun 2007 - 05:05:57 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 18 Jun 2007 - 07:32:30 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.