[R] Sorting a date vector
David Winsemius
dwinsemius at comcast.net
Tue Dec 16 15:22:26 CET 2008
On Dec 16, 2008, at 8:49 AM, Prof Brian Ripley wrote:
> On Tue, 16 Dec 2008, David Winsemius wrote:
>
>> You cannot keep them as strings and still get the benefits of
>> working with date-class objects. You should read more documentation
>> regarding dates. The
>
> You can: order() will work on the Date class and the ordering can be
> applied to the original data.
Got it. Worked examples:
> dts <- c("10-02-2008", "10-03-2008", "10-06-2008", "10-07-2008",
"10-09-2008", "12-09-2008", "12-10-2008", "12-11-2008", "12-12-2008",
"12-15-2008","4-18-2008", "4-21-2008", "4-22-2008", "4-23-2008")
> order(as.Date(dts, format = "%m-%d-%Y"))
[1] 11 12 13 14 1 2 3 4 5 6 7 8 9 10
> rev(order(as.Date(dts, format = "%m-%d-%Y")))
[1] 10 9 8 7 6 5 4 3 2 1 14 13 12 11
> dts[rev(order(as.Date(dts, format = "%m-%d-%Y")))]
[1] "12-15-2008" "12-12-2008" "12-11-2008" "12-10-2008" "12-09-2008"
"10-09-2008" "10-07-2008" "10-06-2008" "10-03-2008"
[10] "10-02-2008" "4-23-2008" "4-22-2008" "4-21-2008" "4-18-2008"
> dts[order(as.Date(dts, format = "%m-%d-%Y"))]
[1] "4-18-2008" "4-21-2008" "4-22-2008" "4-23-2008" "10-02-2008"
"10-03-2008" "10-06-2008" "10-07-2008" "10-09-2008"
[10] "12-09-2008" "12-10-2008" "12-11-2008" "12-12-2008" "12-15-2008"
I still suggest that RON70 educate himself further regarding the Date
class and formats.
--
David Winsemius
>
>
>> as.Date function turns strings into a form that is stored
>> internally as number of days since some reference date and what you
>> are seeing is the default display format, %Y-%m-%d". Learn how to
>> use the output formats so that you see what you desire.
>>
>> ?as.Date
>> ?Dates
>> ?format.Date
>>
>> --
>> David Winsemius
>>
>>
>> On Dec 16, 2008, at 8:24 AM, RON70 wrote:
>>
>>> Yes you are right. However using that code, format of date is
>>> altered. I need
>>> to main same format as the input data i.e. "10-02-2008" not
>>> "2008-10-02",
>>> still having date-class. Any better idea?
>>> David Winsemius wrote:
>>>> You might want to look at your date format more closely. Both the
>>>> separator and the year format specs fail to match your input.
>>>>> as.Date("10-02-2008", format = "%m/%d/%y")
>>>> [1] NA
>>>>> as.Date("10-02-2008", format = "%m-%d-%Y")
>>>> [1] "2008-10-02"
>>>> --
>>>> David Winsemius
>>>> On Dec 16, 2008, at 7:54 AM, RON70 wrote:
>>>>> I have a date-like-vector like :
>>>>>> date_file
>>>>> "10-02-2008" "10-03-2008" "10-06-2008" "10-07-2008" "10-09-2008"
>>>>> "10-10-2008" "10-13-2008" "10-14-2008" "10-15-2008"
>>>>> "10-16-2008" "10-17-2008" "10-20-2008" "10-21-2008" "10-22-2008"
>>>>> "10-23-2008" "10-24-2008" "10-28-2008" "10-29-2008"
>>>>> "10-30-2008" "10-31-2008" "11-03-2008" "11-04-2008" "11-05-2008"
>>>>> "11-06-2008" "11-07-2008" "11-10-2008" "11-11-2008"
>>>>> "11-12-2008" "11-13-2008" "11-14-2008" "11-17-2008" "11-18-2008"
>>>>> "11-19-2008" "11-20-2008" "11-21-2008" "11-24-2008"
>>>>> "11-25-2008" "11-26-2008" "11-28-2008" "12-01-2008" "12-02-2008"
>>>>> "12-03-2008" "12-04-2008" "12-05-2008" "12-08-2008"
>>>>> "12-09-2008" "12-10-2008" "12-11-2008" "12-12-2008" "12-15-2008"
>>>>> "4-18-2008" "4-21-2008" "4-22-2008" "4-23-2008"
>>>>> "4-24-2008" "4-28-2008" "4-29-2008" "5-01-2008" "5-05-2008"
>>>>> "5-06-2008" "5-07-2008" "5-09-2008" "5-12-2008"
>>>>> "5-13-2008" "5-14-2008" "5-15-2008" "5-16-2008" "5-19-2008"
>>>>> "5-20-2008" "5-21-2008" "5-22-2008" "5-23-2008"
>>>>> "5-27-2008" "5-28-2008" "5-29-2008" "5-30-2008" "6-02-2008"
>>>>> "6-03-2008" "6-05-2008" "6-06-2008" "6-09-2008"
>>>>> "6-10-2008" "6-11-2008" "6-12-2008" "6-13-2008" "6-17-2008"
>>>>> "6-18-2008" "6-19-2008" "6-20-2008" "6-23-2008"
>>>>> "6-24-2008" "6-25-2008" "6-26-2008" "6-27-2008" "7-01-2008"
>>>>> "7-02-2008" "7-04-2008" "7-07-2008" "7-08-2008"
>>>>> "7-09-2008" "7-10-2008" "7-11-2008" "7-15-2008" "7-16-2008"
>>>>> "7-18-2008" "7-21-2008" "7-22-2008" "7-23-2008"
>>>>> "7-24-2008" "7-25-2008" "7-28-2008" "7-30-2008" "7-31-2008"
>>>>> "8-01-2008" "8-04-2008" "8-05-2008" "8-06-2008"
>>>>> "8-07-2008" "8-08-2008" "8-11-2008" "8-12-2008" "8-13-2008"
>>>>> "8-15-2008" "8-18-2008" "8-19-2008" "8-20-2008"
>>>>> "8-21-2008" "8-22-2008" "8-25-2008" "8-26-2008" "8-27-2008"
>>>>> "8-28-2008" "8-29-2008" "9-03-2008" "9-04-2008"
>>>>> "9-05-2008" "9-08-2008" "9-09-2008" "9-10-2008" "9-11-2008"
>>>>> "9-12-2008" "9-15-2008" "9-16-2008" "9-17-2008"
>>>>> "9-18-2008" "9-19-2008" "9-22-2008" "9-23-2008" "9-24-2008"
>>>>> "9-25-2008" "9-26-2008" "9-29-2008" "9-30-2008"
>>>>> I wanted to sort this in ascending order. I tried using simply
>>>>> sort()
>>>>> function, without altering the format of date, but it didnot work.
>>>>> Next I
>>>>> tried to convert that vector in a date-class vector so that, I
>>>>> could
>>>>> sort
>>>>> them but in vein :(
>>>>> I used :
>>>>> as.Date(date_file, format="%m/%d/%y")
>>>>> However it did not work.
>>>>> Can anyone please tell me what would be correct approach?
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Sorting-a-date-vector-tp21032540p21032540.html
>>>>> Sent from the R help mailing list archive at Nabble.com.
>>>>> ______________________________________________
>>>>> R-help at 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 at 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.
>>> --
>>> View this message in context: http://www.nabble.com/Sorting-a-date-vector-tp21032540p21032997.html
>>> Sent from the R help mailing list archive at Nabble.com.
>>> ______________________________________________
>>> R-help at 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 at 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.
>
> --
> Brian D. Ripley, ripley at stats.ox.ac.uk
> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
> University of Oxford, Tel: +44 1865 272861 (self)
> 1 South Parks Road, +44 1865 272866 (PA)
> Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list