[R] Novice programing question

Ista Zahn istazahn at gmail.com
Thu Oct 25 04:42:11 CEST 2007


Thanks to everyone who responded to this question. I now understand  
much better, not only this particular issue, but also how to  
understand R documentation (it was not clear to me before happens  
when an argument is "NULL"). And yes, my original function was  
needlessly complicated! Thanks for being helpful and not mocking my  
ignorance.

--Ista
On Oct 24, 2007, at 10:18 PM, <Bill.Venables at csiro.au>  
<Bill.Venables at csiro.au> wrote:

> ?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