[R] Rank Values in a Matrix

Doran, Harold
Mon, 19 May 2008 12:14:44 -0000

If your matrix below is called aa, you could do this

> matrix(rank(aa, ties='min'), ncol=ncol(aa))
     [,1] [,2] [,3] [,4]
[1,]    4    8    1   11
[2,]   14   11   11    5
[3,]   15    5    5    1
[4,]   15    8    8    1

This doesn't assign the values you list, but it does rank them. OTOH, if
you want as you have below, I think this works

rank(unique(stack(aa)[1]))-1

> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Jens Oldeland
> Sent: Monday, May 19, 2008 7:47 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Rank Values in a Matrix
>
> Dear All,
>
> a short and maybe simple question:
>
>
> I have to rank all values in a matrix from 0 to X,
>
>     [1]   [2] [3]  [4]
> [1] 0.1  2   0    3
> [2] 50   3   3    1
> [3] 100 1   1    0
> [4] 100  2  2    0
>
> 0->0
> 0.1->1
> 2->2
> 3->3
> 50->4
> 100->5  (X=5)
>
> is there any function for this? i have looked in several
> packages (vegan, labdsv etc.) because I am working with
> species by site tables, but without success. perhaps I looked
> for the wrong terms (rank matrix etc.)
>
> thank you for your help
>
> regards,
> Jens
>
> --
> +++++++++++++++++++++++++++++++++++++++++
> Dipl.Biol. Jens Oldeland
> University of Hamburg
> Biocentre Klein Flottbek and Botanical Garden Ohnhorststr. 18
> 22609 Hamburg,
> Germany
>
> Tel:    0049-(0)40-42816-407
> Fax:    0049-(0)40-42816-543
> Mail: 	Oldeland at botanik.uni-hamburg.de
>         Jens.Oldeland at DLR.de  (for attachments > 2mb!!)
> http://www.biologie.uni-hamburg.de/bzf/fbda005/fbda005.htm
> +++++++++++++++++++++++++++++++++++++++++
>
> ______________________________________________
> R-help at 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.
>