[R] sorting matrix to match an ordered list

jim holtman jholtman at gmail.com
Tue Jan 27 21:47:57 CET 2009


try this:

> x = rbind(c(0,1,1), c(2,3,1), c(4,5,1))
> y = as.matrix(x)
> rownames(y) = c("a","b","c")
> colnames(y) = c("a","b","c")
> ordered_list = c("b", "c", "a")
> y
  a b c
a 0 1 1
b 2 3 1
c 4 5 1
> z <- y[ordered_list, ordered_list]
> z
  b c a
b 3 1 2
c 5 1 4
a 1 1 0
>


On Tue, Jan 27, 2009 at 3:26 PM, Nick Matzke <matzke at berkeley.edu> wrote:
> Hi all,
>
> This can't be very hard, but it is sticking me because I am a beginner.
>  Setup:
>
> x = rbind(c(0,1,1), c(2,3,1), c(4,5,1))
> y = as.matrix(x)
> rownames(y) = c("a","b","c")
> colnames(y) = c("a","b","c")
> ordered_list = c("b", "c", "a")
>
> How do I produce a new matrix, z, with the rows and columns both sorted in
> the order specified by ordered_list?
>
> (I have a big 124x124 output matrix that comes out with the rows & columns
> in alphabetical order, I want them in a pre-specified order I can get from
> the input file, but the above is an example of the conceptual issue)
>
>
> Thanks!
>
> Nick
>
>
> --
> ====================================================
> Nicholas J. Matzke
> Ph.D. student, Graduate Student Researcher
> Huelsenbeck Lab
> Center for Theoretical Evolutionary Genomics
> 4151 VLSB (Valley Life Sciences Building)
> Department of Integrative Biology
> University of California, Berkeley
>
> Lab websites:
> http://ib.berkeley.edu/people/lab_detail.php?lab=54
> http://fisher.berkeley.edu/cteg/hlab.html
> Dept. personal page:
> http://ib.berkeley.edu/people/students/person_detail.php?person=370
> Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html
> Lab phone: 510-643-6299
> Dept. fax: 510-643-6264
> Cell phone: 510-301-0179
> Email: matzke at berkeley.edu
>
> Mailing address:
> Department of Integrative Biology
> 3060 VLSB #3140
> Berkeley, CA 94720-3140
>
> -----------------------------------------------------
> "[W]hen people thought the earth was flat, they were wrong. When people
> thought the earth was spherical, they were wrong. But if you think that
> thinking the earth is spherical is just as wrong as thinking the earth is
> flat, then your view is wronger than both of them put together."
>
> Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer,
> 14(1), 35-44. Fall 1989.
> http://chem.tufts.edu/AnswersInScience/RelativityofWrong.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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?




More information about the R-help mailing list