On 6/4/05, ronggui <[EMAIL PROTECTED]> wrote:
> i have data fame da:
> > da
>    x y
> 1   1 a
> 2   2 a
> 3   3 a
> 4   4 a
> 5   5 a
> 6   6 b
> 7   7 b
> 8   8 b
> 9   9 b
> 10 10 b
> > str(da)
> `data.frame':   10 obs. of  2 variables:
>  $ x: num  1 2 3 4 5 6 7 8 9 10
>  $ y: Factor w/ 2 levels "a","b": 1 1 1 1 1 2 2 2 2 2
> 
> and i want to generate new variable da$z,when 
> y=="a",da$z=da$x-mean(x[y=="a"])  ,when   y=="b",da$z=da$x-mean(x[y=="b"]).
> 
> this data frame is simple and i can do it by hand,if the y has many levels 
> and i have x1,x2....
> can i do it quickly?
> 

Try this:

da$z <- resid(lm( x ~ y, da ))

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to