[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