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.

Reply via email to