Got it, after rtmíng I realized I had to use xtfrm: 

ord <- order(c(idvars, -xtfrm("t")))
myData[ord, ]
 
It's downright ugly, as it confronts the user with some implementation detail 
(cf SAS or SPSS), but well, it works.
Cheers!!
Albert-Jan 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All right, but apart from the sanitation, the medicine, education, wine, public 
order, irrigation, roads, a fresh water system, and public health, what have the 
Romans ever done for us?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 




________________________________

To: R Mailing List <r-help@r-project.org>
Sent: Tue, January 11, 2011 12:11:01 PM
Subject: [R] sorting question

Hi,

I have a data frame with variables a, b, c (character vars) and t (time var, 
could be represented as POSIXct or character, depending on which is most useful. 

The format is "yyyy-mm-dd hh:mm:ss CET"). Now, I want to sort the data frame in 
ascending order by a, b, c and then in descending order by t.

Here's what I've got, but I'm not sure how to put the 'descending' bit in the 
code. The trick with the minus sign doesn't work as the var isn't numeric.


idvars <-- c("a", "b", "c")
myData["t"] <- as.POSIXct(myData[,"t"])
result <- myData[ do.call(order, myData[c(idvars, "t")]), ]

This should be simple, I guess, but I've been staring at this a bit too long 
[[elided Yahoo spam]]
Cheers!!
Albert-Jan 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All right, but apart from the sanitation, the medicine, education, wine, public 
order, irrigation, roads, a fresh water system, and public health, what have the 

Romans ever done for us?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 


      
    [[alternative HTML version deleted]]


      
	[[alternative HTML version deleted]]

