[R] Simple order() data frame question.
Patrick Breheny
patrick.breheny at uky.edu
Thu May 12 14:44:07 CEST 2011
On 05/12/2011 08:32 AM, John Kane wrote:
> Clearly, I don't understand what order() is doing and as ususl the help for order seems to only confuse me more. For some reason I just don't follow the examples there. I must be missing something about the data frame sort there but what?
>
> I originally wanted to reverse-order my data frame df1 (see below) by aa (a factor) but since this was not working I decided to simplify and order by bb to see what was haqppening!!
>
> I'm obviously doing something stupid but what?
>
> (df1<- data.frame(aa=letters[1:10],
> bb=rnorm(10)))
> # Order in acending order by bb
> (df1[order(df1[,2]),] ) # seems to work fine
>
> # Order in decending order by bb.
> (df1[order(df1[,-2]),]) # does not seem to work
>
There is a 'decreasing' option described in the help file for 'order'
which does what you want:
df1<- data.frame(aa=letters[1:10],bb=rnorm(10))
df1[order(df1[,2],decreasing=TRUE),]
aa bb
6 f 3.16449690
7 g 2.44362935
8 h 0.80990322
1 a 0.06365513
5 e -0.33932586
9 i -0.52119533
2 b -0.65623164
4 d -0.86918700
3 c -1.86750927
10 j -2.21178676
df1[order(df1[,1],decreasing=TRUE),]
aa bb
10 j -2.21178676
9 i -0.52119533
8 h 0.80990322
7 g 2.44362935
6 f 3.16449690
5 e -0.33932586
4 d -0.86918700
3 c -1.86750927
2 b -0.65623164
1 a 0.06365513
The expression 'df1[,-2]' removes the second column from df1; clearly
not what you want here.
--
Patrick Breheny
Assistant Professor
Department of Biostatistics
Department of Statistics
University of Kentucky
More information about the R-help
mailing list