[R] Novice programing question
Bill.Venables at csiro.au
Bill.Venables at csiro.au
Thu Oct 25 04:18:42 CEST 2007
?var points out that "var is another interface to cov", i.e. it
calculates (possibly part of) the "variance" matrix. In the simplest
special case y = x and you get the entire variance matrix, or just the
sample variance if x is a simple vector, as in your case.
BTW you little function is a bit more complicated than it need be, isn't
it?
> my.var <- function(x) sum((x-mean(x))^2)/(length(x)-1)
would do the same job with many fewer parentheses....
Bill Venables
CSIRO Laboratories
PO Box 120, Cleveland, 4163
AUSTRALIA
Office Phone (email preferred): +61 7 3826 7251
Fax (if absolutely necessary): +61 7 3826 7304
Mobile: +61 4 8819 4402
Home Phone: +61 7 3286 7700
mailto:Bill.Venables at csiro.au
http://www.cmis.csiro.au/bill.venables/
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Ista Zahn
Sent: Thursday, 25 October 2007 11:35 AM
To: r-help at r-project.org
Subject: [R] Novice programing question
Hi all,
I apologize for the ignorance implicit in this question, but I'm
having a hard time figuring out how R functions work. For example, if
I wanted to write a function to compute a variance, I would do
something like
>my.var <- function(x) (sum(((x-mean(x)))^2))/(length(((x-mean(x)))
^2)-1)
And this seems to work, e.g.,
> my.var(V1)
[1] 116.1
> var(V1)
[1] 116.1
But when I try to see what the built-in var function does I get
> var
function (x, y = NULL, na.rm = FALSE, use)
{
if (missing(use))
use <- if (na.rm)
"complete.obs"
else "all.obs"
na.method <- pmatch(use, c("all.obs", "complete.obs",
"pairwise.complete.obs"))
if (is.data.frame(x))
x <- as.matrix(x)
else stopifnot(is.atomic(x))
if (is.data.frame(y))
y <- as.matrix(y)
else stopifnot(is.atomic(y))
.Internal(cov(x, y, na.method, FALSE))
}
<environment: namespace:stats>
Being a novice, I can't understand what this means. I only have one
variable, yet the code seems to be based on the covariance between x
and y. What is y? Sorry for such a stupid question. I am just trying
to figure out how R does things, and I can't seem to get my head
around it. Thank you for your patience.
-Ista Zahn
http://izahn.homedns.org
______________________________________________
R-help at r-project.org 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.
More information about the R-help
mailing list