Here's one possibility:
sort.v<-c(Lake=1,Shoreline=2,Floodplain=3) test.df[order(sort.v[as.character(test.df$Zone)]),]
Zone Cover 2 Lake 60 3 Shoreline 70 1 Floodplain 50
- Phil Spector Statistical Computing Facility Department of Statistics UC Berkeley spec...@stat.berkeley.edu On Thu, 26 Aug 2010, chipmaney wrote:
I have a dataset I need to sort: test.df<-data.frame(Zone=c("Floodplain", "Lake", "Shoreline"),Cover=c(50,60,70)) However, I don't want it sorted ascending/descending but in an order that I define via a vector: sort.v<-data.frame(c("Lake","Shoreline","Floodplain")) I realize I could probably just create the vector of [factors] in the order I want, then assign the value: sort.v$Cover<-test.df$Cover However, this is inefficient. Is there source code or a syntactical trick that will do the same more efficiently? Note: I have investigated order() and sort(), but neither seems to have an argument for defining the sorting order. Thanks in advance, Chipper -- View this message in context: http://r.789695.n4.nabble.com/Non-standard-sorts-on-vectors-tp2340431p2340431.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.
______________________________________________ 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.