[R] functions and multiple levels

Charles C. Berry cberry at tajo.ucsd.edu
Wed Aug 18 17:51:24 CEST 2010


On Wed, 18 Aug 2010, chris20 wrote:

>
>
> Hi,
> I am trying to write a function;
> I want to subtract the mean of each class in level 2 from the mean of each
> class in level 1 and square the answer, eg.....
>
>   level.1      level.2      observation
>      1             1                 0.5
>      1             1                 0.2
>      1             2                 0.6
>      1             2                 0.4
>      2             3                 0.8
>      2             3                 0.7
>      2             4                 0.6
>      2             4                 0.4
>
> (mean(1$level.1) - mean(1$level.2))^2
> (mean(1$level.1) - mean(2$level.2))^2
>
> etc.....

Chris,

Almost always best to break things into little pieces, like this:

> # read data (copy above to clipboard)
> dat <- read.table("clipboard",head=T, 
+        colClasses=c('factor','factor','numeric'))
> # means of level.1
> m1 <- coef(lm(observation~0+level.1,dat))
> # means of level.2
> m2 <- coef(lm(observation~0+level.2,dat))
> # all differences
> outer( m1, m2, '-')
          level.21 level.22 level.23 level.24
level.11    0.075   -0.075   -0.325   -0.075
level.12    0.275    0.125   -0.125    0.125
>
> # all differences squared
> outer( m1, m2, '-')^2
          level.21 level.22 level.23 level.24
level.11 0.005625 0.005625 0.105625 0.005625
level.12 0.075625 0.015625 0.015625 0.015625
>

HTH,

Chuck

>
> I want to write a function because I have lots of levels and lots of
> different observations.
> I thought this should be easy (it's my first attempt at writing a function)
> but I just can't work it out!
>
> Thanks
> Chris
> -- 
> View this message in context: http://r.789695.n4.nabble.com/functions-and-multiple-levels-tp2329935p2329935.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



More information about the R-help mailing list