Dear R guru's,
I'd like to sort the columns of a matrix according to the elements in the
first row, and in case of a tie according to the second row, etc.
In case of a 3xn matrix woppa, something like
colorder _ order(woppa[1,], woppa[2,], woppa[3,])
I just cannot seem to find a way to do this for a variable number of rows,
e.g. if woppa has 10 or 15 rows I now manually cut and paste to have 10 - 15
arguments in the order function. There has to be a clever way to do this...
Ron
-----------------------+--------------------------------------------------
Ron Wehrens | " In a purely metaphorical sense, I am a turnip
"
Dept. of Chemometrics | (W.A. Quayle)
University of Nijmegen | Email: rwehrens at sci.kun.nl
Toernooiveld 1 | http://www-cac.sci.kun.nl/cac/rwehrens
6525 ED Nijmegen | Tel: +31 24 365 2053
The Netherlands | Fax: +31 24 365 2653
-----------------------+------------------------------------------------
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at
stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Hi Ron -- Too tempting! I would try something like
woppa <- matrix(1:120, 30, 4)
colorder <- do.call("order", split(woppa, row(woppa)))
Cheers, Jonathan.
On Thu, 13 Jul 2000, Ron Wehrens wrote:
> I'd like to sort the columns of a matrix according to the elements in
the
> first row, and in case of a tie according to the second row, etc.
> In case of a 3xn matrix woppa, something like
>
> colorder _ order(woppa[1,], woppa[2,], woppa[3,])
>
> I just cannot seem to find a way to do this for a variable number of rows,
> e.g. if woppa has 10 or 15 rows I now manually cut and paste to have 10 -
15
> arguments in the order function. There has to be a clever way to do this...
Jonathan Rougier Science Laboratories
Department of Mathematical Sciences South Road
University of Durham Durham DH1 3LE
http://www.maths.dur.ac.uk/stats/people/jcr/jcr.html
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at
stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Here is a small function that was posted here some time ago by Renaud
Lancelot in response to a similar question and which I find very handy:
Sortmat.R <-
function (Mat, Sort)
# by Renaud Lancelot <lancelot at telecomplus.sn>
# Sort matrix or dataframe 'Mat', by column(s) 'Sort'.
# e.g. sortmat.R(datafr, c(2,4,1))
{
m <- do.call("order", as.data.frame(Mat[, Sort]))
Mat[m, ]
}
On Thu, 13 Jul 2000, Ron Wehrens wrote:
> Date: Thu, 13 Jul 2000 15:37:24 +0200 (MET DST)
> From: Ron Wehrens <rwehrens at sci.kun.nl>
> To: Rhelp <r-help at hypatia.math.ethz.ch>
> Subject: [R] Programming puzzle...
>
> Dear R guru's,
>
> I'd like to sort the columns of a matrix according to the elements in
the
> first row, and in case of a tie according to the second row, etc.
> In case of a 3xn matrix woppa, something like
>
> colorder _ order(woppa[1,], woppa[2,], woppa[3,])
>
> I just cannot seem to find a way to do this for a variable number of rows,
> e.g. if woppa has 10 or 15 rows I now manually cut and paste to have 10 -
15
> arguments in the order function. There has to be a clever way to do this...
>
>
> Ron
>
> -----------------------+--------------------------------------------------
> Ron Wehrens | " In a purely metaphorical sense, I am a
turnip "
> Dept. of Chemometrics | (W.A. Quayle)
> University of Nijmegen | Email: rwehrens at sci.kun.nl
> Toernooiveld 1 | http://www-cac.sci.kun.nl/cac/rwehrens
> 6525 ED Nijmegen | Tel: +31 24 365 2053
> The Netherlands | Fax: +31 24 365 2653
>
-----------------------+------------------------------------------------
>
>
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !) To: r-help-request at
stat.math.ethz.ch
>
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>
>
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at
stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._