[R] sort matrix based on a specific order

jim holtman jholtman at gmail.com
Thu Jan 10 19:30:50 CET 2013


more complete example


> mat<-cbind(c('w','x','y','z'),c('a','b','c','d'))
> matOrd <- mat[order(factor(mat[,2], levels = c('c', 'b', 'd','a'))), ]
> matOrd
     [,1] [,2]
[1,] "y"  "c"
[2,] "x"  "b"
[3,] "z"  "d"
[4,] "w"  "a"
>



On Thu, Jan 10, 2013 at 1:21 PM, array chip <arrayprofile at yahoo.com> wrote:
> Hi I have a character matrix with 2 columns A and B, If I want to sort the matrix based on the column B, but based on a specific order of characters:
>
> mat<-cbind(c('w','x','y','z'),c('a','b','c','d'))
> ind<-c('c','b','d','a')
>
> I want "mat" to be sorted by the sequence in "ind":
>
>      [,1] [,2]
> [1,] "y"  "c"
> [2,] "x"  "b"
> [3,] "z"  "d"
> [4,] "w"  "a"
>
> Is there any simple function that can do this?
>
> Thanks
>
> John
>
>         [[alternative HTML version deleted]]
>
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.




More information about the R-help mailing list