[R] sorting matrix elements by given rownames and colnames
Chuck Cleland
ccleland at optonline.net
Tue Jun 13 13:54:27 CEST 2006
Albert Vilella wrote:
> Hi all,
>
> I would like to know if it is possible to sort the columns and rows in
> a matrix given a specified order of their colnames and rownames. For
> example:
>
> I would like the original matrix:
>
> RNO FRU ANG CEL DAR PTR
> RNO 3.45 1.35 2.16 2.25 1.43 1.20
> FRU 1.31 Inf 2.22 2.36 1.34 1.40
> ANG 1.30 1.30 11.61 1.37 1.33 1.35
> CEL 1.34 1.35 1.37 Inf 1.37 1.40
> DAR 1.40 1.29 2.29 2.39 9.62 1.48
> PTR 1.08 1.30 2.06 2.17 1.39 8.17
>
> To be sorted in a top/down and left/right way in this order
> instead: "FRU","ANG","CEL","PTR","RNO","DAR".
X <- round(matrix(rnorm(36), ncol=6), 2)
colnames(X) <- c("RNO", "FRU", "ANG", "CEL", "DAR", "PTR")
rownames(X) <- c("RNO", "FRU", "ANG", "CEL", "DAR", "PTR")
myord <- c("FRU", "ANG", "CEL", "PTR", "RNO", "DAR")
X
RNO FRU ANG CEL DAR PTR
RNO -0.99 0.03 -0.78 -0.55 0.01 -0.64
FRU -0.50 -0.67 2.05 0.28 0.86 0.20
ANG -0.87 0.48 -0.26 0.00 -0.39 -0.18
CEL -0.71 0.55 1.32 0.36 -0.53 -0.53
DAR 0.92 -1.28 0.92 -0.19 0.56 -0.86
PTR -0.60 -0.95 -0.17 -1.23 0.41 -0.36
X[myord,myord]
FRU ANG CEL PTR RNO DAR
FRU -0.67 2.05 0.28 0.20 -0.50 0.86
ANG 0.48 -0.26 0.00 -0.18 -0.87 -0.39
CEL 0.55 1.32 0.36 -0.53 -0.71 -0.53
PTR -0.95 -0.17 -1.23 -0.36 -0.60 0.41
RNO 0.03 -0.78 -0.55 -0.64 -0.99 0.01
DAR -1.28 0.92 -0.19 -0.86 0.92 0.56
> Thanks in advance,
>
> Albert.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
--
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 512-0171 (M, W, F)
fax: (917) 438-0894
More information about the R-help
mailing list