On Mon, 2007-10-08 at 07:26 -0700, Samuel Okoye wrote:
> Hello, I have got the following problem:
>   > times <- c("02.07.2007", "03.07.2007","03.09.2007", 
> "04.07.2007","05.07.2007")
> > mode(times)
> [1] "numeric"
> > tim <- as.character(times)
> > mode(tim)
> [1] "character"
>   > sort(times)
> [1] "02.07.2007" "03.07.2007" "03.09.2007" "04.07.2007" "05.07.2007"
> 
>   Is it possible to get 
>   > function(sort(times))
>   [1] "02.07.2007" "03.07.2007" "04.07.2007" "05.07.2007" "03.09.2007"
>    
>   Thank you very much in advance,
>   Sam

You need to convert 'times' to a Date class object, which can be sorted
as dates and then re-formatted for output:

> format(sort(as.Date(times, format = "%d.%m.%Y")), "%d.%m.%Y")
[1] "02.07.2007" "03.07.2007" "04.07.2007" "05.07.2007" "03.09.2007"

Otherwise, you are sorting based upon a character vector, the order of
which will be locale dependent. Locale issues are likely why your
'times' object is initially a numeric vector and not a character
vector. 

You can of course encapsulate the above in a function.

See ?as.Date

HTH,

Marc Schwartz

______________________________________________
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