Oh, I should have mentioned that the result of melt is a data.frame, not a matrix. You can convert with as.matrix if you like.
I should also have shown that dimnames are carried along: > m <- matrix(1:4,2,2,dimnames=list(x=c('a','b'),y=c('x','y'))) > m y x x y a 1 3 b 2 4 > melt(m) x y value 1 a x 1 2 b x 2 3 a y 3 4 b y 4 > as.matrix(melt(m)) x y value [1,] "a" "x" "1" [2,] "b" "x" "2" [3,] "a" "y" "3" [4,] "b" "y" "4" On Fri, May 29, 2009 at 2:53 PM, Stavros Macrakis <macra...@alum.mit.edu>wrote: > Not sure what you mean by "permutations" here. I think what you mean is > that given a matrix m, you want a matrix whose rows are c(i,j,m[i,j]) for > all i and j. You can use the `melt` function in the `reshape` package for > this. See below. > > Hope this helps, > > -s > > > library(reshape) > > melt(matrix(1:4,2,2)) > X1 X2 value > 1 1 1 1 > 2 2 1 2 > 3 1 2 3 > 4 2 2 4 > > big <- matrix(1:700^2,700,700) > > head(melt(big)) > X1 X2 value > 1 1 1 1 > 2 2 1 2 > 3 3 1 3 > 4 4 1 4 > 5 5 1 5 > 6 6 1 6 > > system.time(melt(big)) > user system elapsed > 0.08 0.00 0.08 > > > On Fri, May 29, 2009 at 2:08 PM, Ian Coe <i...@connectcap.com> 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. >> >> >> >> 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. >> > > [[alternative HTML version deleted]] ______________________________________________ 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.