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.