Ian Coe wrote:
Hi,

   Is there a way to  convert a matrix into a vector representing all
permutations of values and column/row headings with native R functions?
I did this with 2 nested for loops and it took about 25 minutes to run
on a  ~700x700 matrix.  I'm assuming there must be a smarter way to do
this with R's vector commands, but being new to R, I'm having trouble
making it work.

> cbind(expand.grid(rownames(x),colnames(x)),as.vector(x))
  Var1 Var2 as.vector(x)
1    d    a            1
2    e    a            2
3    f    a            3
4    d    b            4
5    e    b            5
6    f    b            6
7    d    c            7
8    e    c            8
9    f    c            9

> x <- matrix(rnorm(700*700),700)
> rownames(x) <- paste("R",1:700)
> colnames(x) <- paste("C",1:700)
> system.time(foo <- cbind(expand.grid(rownames(x),colnames(x)),as.vector(x)))
   user  system elapsed
  1.082   0.107   1.193


Thanks,

Ian

     [a] [b] [c]

[d]    1    4    7

[e]    2    5    8

[f]    3    6    9

a d 1

a e 2

a f 3

b d 4

b e 5

b f 6

c d 7

c e 8

c f 9

Ian Coe

Connective Capital Management, LLC

385 Homer Ave.

Palo Alto, CA 94301

(650) 321-4826 ext. 03
CONFIDENTIALITY NOTICE: This e-mail communication (inclu...{{dropped:23}}

______________________________________________
R-help@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.


--
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalga...@biostat.ku.dk)              FAX: (+45) 35327907

______________________________________________
R-help@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.

Reply via email to