[R] within: order of newly added variables

Gabor Grothendieck ggrothendieck at gmail.com
Wed Sep 2 20:30:17 CEST 2009


On Wed, Sep 2, 2009 at 9:27 AM, RINNER
Heinrich<HEINRICH.RINNER at tirol.gv.at> wrote:
> Dear R community,
>
> I am using function 'within' in R.2.9.1 to add variables to an existing data.frame. This works wonderful, except for one minor point: The new variables are added to the data in reverse order.
>
> For example:
> x <- data.frame(a = 1:3, b = 4:6)
> y <- within(x, {
>     c = a^2
>     d = b^2
>     e = c+d
>     }
> )
> gives
>  a b  e  d c
> 1 1 4 17 16 1
> 2 2 5 29 25 4
> 3 3 6 45 36 9
>
> Just what I want; except that I would prefer the columns to be in order a,b,c,d,e instead.
>
> I could use transform ("transform(x, c=a^2, d=b^2, e=c+d)"), which preserves the specified order of variables, but that won't work here because unfortunately it doesn't find object 'd' (same with "within(x, {e = c+d; d = b^2; c = a^2})", by the way).

Such a constract is supported by my.transform posted here:
http://tolstoy.newcastle.edu.au/R/e2/help/07/09/24707.html

x <- data.frame(a = 1:3, b = 4:6)
my.transform(x, c=a^2, d=b^2, e=c+d)




More information about the R-help mailing list