[R] data transformation
Gabor Grothendieck
ggrothendieck at gmail.com
Sun Jun 5 06:33:30 CEST 2005
On 6/4/05, ronggui <0034058 at fudan.edu.cn> 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 ))
More information about the R-help
mailing list