First it looks like in L you need a 3 in row 3 col 2. Anyway I think this is a non elegant way to do it without a loop that you can easily improve I imagine and should be faster than the loop. You will have to adjust the numbers to fit you matrix size etc.
R>mat<-matrix(sample(0:9,100,replace=T),50,2)#your M R>new<-matrix(mat,100,1) R>new2<-c(rep(1,50),rep(2,50)) R>new3<-c(rep(1:50,2)) R>result<-cbind(new,new2,new3)# your L Jim -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stefan Mischke Sent: June 7, 2005 8:56 AM To: r-help@stat.math.ethz.ch Subject: [R] transform large matrix into list Dear List I need to transform a large matrix M with many NAs into a list L with one row for each non missing cell. Every row should contain the cell value in the first column, and its coordinates of the matrix in column 2 and 3. M: x1 x2 y1 1 2 y2 4 5 y3 7 8 L: v x y 1 1 1 4 1 2 7 1 2 2 2 1 5 2 2 8 2 3 I'm trying to do this with a loop, but since my matrix is quite large (around 10k^2) this just takes a very long time. There must be a more efficient and elegant way to do this. Any hints? Thanks, Stefan ______________________________________________ R-help@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 ______________________________________________ R-help@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