Try this: newx <- with(x, cbind(stack(x, select = grep("spec", names(x))), lat, lon)) newx[newx$values > 0, -1]
On 5/2/08, Christian Hof <[EMAIL PROTECTED]> wrote: > > Dear all, > how can I, with R, transform a presence-absence (0/1) matrix of species > occurrences into a presence-only table (3 columns) with the names of the > species (1st column), the lat information of the sites (2nd column) and the > lon information of the sites (3rd column), as given in the below example? > Thanks a lot for your help! > Christian > > > my dataframe: > > site lat lon spec1 spec2 spec3 spec4 > site1 10 11 1 0 1 0 > site2 20 21 1 1 1 0 > site3 30 31 0 1 1 1 > > > my desired new dataframe: > > species lat lon > spec1 10 11 > spec1 20 21 > spec2 20 21 > spec2 30 31 > spec3 10 11 > spec3 20 21 > spec3 30 31 > spec4 30 31 > > > > -- > Christian Hof, PhD student > > Center for Macroecology & Evolution > University of Copenhagen > www.macroecology.ku.dk > & > Biodiversity & Global Change Lab > Museo Nacional de Ciencias Naturales, Madrid > www.biochange-lab.eu > > mobile ES .. +34 697 508 519 > mobile DE .. +49 176 205 189 27 > mail .. [EMAIL PROTECTED] > mail2 .. [EMAIL PROTECTED] > blog .. www.vogelwart.de > > ______________________________________________ > 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[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.