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
