Re: [R] sort question in a dataset?

From: zhijie zhang <epistat_at_gmail.com>
Date: Sun 15 Oct 2006 - 05:01:33 GMT

*Richard M. Heiberger* ,
  You have showed a detailed informaton on order, but it seems that there's a little difference between my task and your suggestions. I'd like to give a clear example to show my task:

x <-  c(2, 9, 18, 3, 2)
y <-  c(2,9,8,9,8)
z <-  c(21,5,5,19,7)
a <-  cbind(x, y, z)  #dataset
a
      x y  z
[1,]  2 2 21
[2,]  9 9  5
[3,] 18 8  5

[4,] 3 9 19
[5,] 2 8 7
aa <- a[order(a[,"y"], decreasing=TRUE),] aaa <- aa[order(aa[,"x"], decreasing=FALSE),] aaa

    x y z

[1,]  2 8  7
[2,]  2 2 21
[3,]  3 9 19
[4,]  9 9  5
[5,] 18 8  5

But i hope to get the following results:

      x y z

[1,]  3 9 19
[2,]  9 9  5
[3,]  2 8  7
[4,] 18 8  5
[5,]  2 2 21

*That's to say to sort the dataset with decreasing y and ascending x simultaneously*.
BTW, what's the main difference between order() and sort()? I can't find some simple introduction on their differnce. Thanks very much!

On 10/15/06, Richard M. Heiberger <rmh@temple.edu> wrote:
>
> > ?order
> > x <- c(2, 9, 18, 3, 2)
> > y <- c(2,5.6,5,9,8)
> > z <- c(21,5,5,19,7)
> > a <- cbind(x, y, z)
> > a
> x y z
> [1,] 2 2.0 21
> [2,] 9 5.6 5
> [3,] 18 5.0 5
> [4,] 3 9.0 19
> [5,] 2 8.0 7
> > aa <- a[order(a[,"y"], decreasing=TRUE),]
> > aaa <- aa[order(aa[,"x"], decreasing=FALSE),]
> > aaa
> x y z
> [1,] 2 8.0 7
> [2,] 2 2.0 21
> [3,] 3 9.0 19
> [4,] 9 5.6 5
> [5,] 18 5.0 5
> >
>
> a$y doesn't work because $ subscripting requires a data.frame.
> cbind creates an ordinary matrix. This works with a data.frame.
> > a <- data.frame(x, y, z)
> > aa <- a[order(a$y, decreasing=TRUE),]
> > aaa <- aa[order(aa$x, decreasing=FALSE),]
>
> Please use spaces for legibility on both sides of the assignment
> arrow and after a comma.
>
> If you want all columns ascending (or descending), then you could do it in
> one step
> > aaaa <- a[order(a$x, a$y), ]
>
> See also the example in ?order
> ## Suppose we wanted descending order on y. A simple solution is
> rbind(x,y,z)[, order(x, -y, z)]
>

-- 
With Kind Regards,

oooO:::::::::
(..):::::::::
:\.(:::Oooo::
::\_)::(..)::
:::::::)./:::
::::::(_/::::
:::::::::::::
[***********************************************************************]
Zhi Jie,Zhang ,PHD
Tel:86-21-54237149   epistat@gmail.com
Dept. of Epidemiology,school of public health,Fudan University
Address:No. 138 Yi Xue Yuan Road,Shanghai,China
Postcode:200032
[***********************************************************************]
oooO:::::::::
(..):::::::::
:\.(:::Oooo::
::\_)::(..)::
:::::::)./:::
::::::(_/::::
:::::::::::::

	[[alternative HTML version deleted]]

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Sun Oct 15 15:07:59 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sun 15 Oct 2006 - 06:30:10 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.