Thanks to all, "do.call(order, as.data.frame(y))" was the idiom I was
missing!

-Aaron

On Thu, Feb 19, 2009 at 11:52 AM, Gustaf Rydevik
<gustaf.ryde...@gmail.com>wrote:

> On Thu, Feb 19, 2009 at 5:40 PM, Aaron Mackey <ajmac...@gmail.com> wrote:
> > There's got to be a better way to use order() on a matrix than this:
> >
> >> y
> >    2L-035-3 2L-081-23 2L-143-18 2L-189-1 2R-008-5 2R-068-15 3L-113-4
> > 3L-173-2
> > 398        1         1         2        2        1         1        2
> > 2
> > 857        1         1         2        2        1         2        2
> > 2
> > 911        1         1         2        2        1         2        2
> > 2
> > 383        1         1         2        2        1         1        2
> > 2
> > 639        1         2         2        1        2         2        1
> > 2
> > 756        1         2         2        1        2         2        1
> > 2
> >    3L-186-1 3R-013-7 3R-032-1 3R-169-10 X-002 X-087
> > 398        1        2        2         2     1     2
> > 857        1        2        2         2     1     2
> > 911        1        2        2         2     1     2
> > 383        1        2        2         2     1     2
> > 639        2        2        1         2     1     2
> > 756        2        2        1         2     1     2
> >
> >>
> >
> y[order(y[,1],y[,2],y[,3],y[,4],y[,5],y[,6],y[,7],y[,8],y[,9],y[,10],y[,11],y[,12],y[,13],y[,14]),]
> >    2L-035-3 2L-081-23 2L-143-18 2L-189-1 2R-008-5 2R-068-15 3L-113-4
> > 3L-173-2
> > 398        1         1         2        2        1         1        2
> > 2
> > 383        1         1         2        2        1         1        2
> > 2
> > 857        1         1         2        2        1         2        2
> > 2
> > 911        1         1         2        2        1         2        2
> > 2
> > 639        1         2         2        1        2         2        1
> > 2
> > 756        1         2         2        1        2         2        1
> > 2
> >    3L-186-1 3R-013-7 3R-032-1 3R-169-10 X-002 X-087
> > 398        1        2        2         2     1     2
> > 383        1        2        2         2     1     2
> > 857        1        2        2         2     1     2
> > 911        1        2        2         2     1     2
> > 639        2        2        1         2     1     2
> > 756        2        2        1         2     1     2
> >
> > Thanks for any suggestions!
> >
> > -Aaron
> >
>
>
> You mean something like this:
> > test<-matrix(sample(1:4,100,replace=T),ncol=10)
> > test[do.call(order,data.frame(test)),]
>
> ?
>
> Regards,
>
> Gustaf
>
>
> --
> Gustaf Rydevik, M.Sci.
> tel: +46(0)703 051 451
> address:Essingetorget 40,112 66 Stockholm, SE
> skype:gustaf_rydevik
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org 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.

Reply via email to