On Sat, Mar 13, 2010 at 4:46 PM, Javier <j.perez-barbe...@macaulay.ac.uk> wrote: > > Dear users, > > Is anyone out there on a Saturday to answer this easy question? > > I have the "yo" object data in a "list" format: > >> str(yo) > num [1:259, 1:173] 16.3 NA NA NA NA ... > - attr(*, "dimnames")=List of 2 > ..$ x: chr [1:259] "367319" "367329" "367309" "367339" ... > ..$ y: chr [1:173] "780175" "780185" "780195" "780205" ... >> length(yo) > [1] 44807 > > where x is the name of the rows and y the name of the columns (coordinates) > of a matrix of 44807 values > > how can I get a data.frame with these three columns: x, y, values > > Many thanks to the Saturday working people.
Let's try with something a bit smaller. Not sure what you mean by list format, your thing looks like a matrix: d=matrix(1:12,ncol=4) dimnames(d) <- list(letters[1:3],letters[9:12]) - hence: > str(d) int [1:3, 1:4] 1 2 3 4 5 6 7 8 9 10 ... - attr(*, "dimnames")=List of 2 ..$ : chr [1:3] "a" "b" "c" ..$ : chr [1:4] "i" "j" "k" "l" > length(d) [1] 12 If I use 'melt' from the 'reshape' package: > require(reshape) > melt(d) X1 X2 value 1 a i 1 2 b i 2 3 c i 3 4 a j 4 5 b j 5 6 c j 6 7 a k 7 8 b k 8 9 c k 9 10 a l 10 11 b l 11 12 c l 12 I think I get pretty much what you want. You might need to set the columns to numeric and maybe change the names. Barry ______________________________________________ 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.