2015-03-12 2 views
0

У меня есть набор данных, который имеет даты в следующем формате. Также есть несколько повторных дат. Мне нужно отсортировать данные в соответствии с датами в календаре. So "Sep 20, 2010", "Mar 5, 2011", "Mar 9, 2011" и так далее. Я попробовал следующее, но это дает мне ошибку.as.Date не работает в R

as.Date(date) 
Error in charToDate(x) : 
    character string is not in a standard unambiguous format 

Я также попробовал сортировку (дата), но сортирует дату по алфавиту по месяцам. Как я могу сортировать этот тип дат в календаре?

date<-c("Mar 9, 2011", "Sep 30, 2011", "Sep 20, 2010", "Mar 5, 2012", "Jul 11, 2012", 
     "Jul 11, 2012","Mar 26, 2013", "Sep 23, 2013", "Apr 7, 2011", "Apr 22, 2013", 
     "Apr 26, 2012") 
+0

Попробуйте 'sort (as.Date (date,"% b% d,% Y "))'. – patabongo

+1

Вы действительно заглянули в документацию '? As.Date'? Много подобных примеров. –

ответ

1

Что вам нужно, это format= аргумент в функции as.Date(). Так что, если date вектор определяется как в вашем посте, вы можете сделать

date <- sort(as.Date(date, format="%b %d, %Y")) 

%b это сокращенное название месяца, например, Mar

%d Числовой день месяца

%Y является годом

Использование функции sort() должен затем правильно сортировать вектор по возрастанию по календарной дате.

+0

Спасибо за информацию. Это сработало! – user24318

+0

@ user24318: Рад, что я мог бы помочь. –

+0

Да, я смотрел документацию как.Date. По-видимому, у меня было немного лишних пробелов в моей дате, поэтому пришлось изменить формат = «% b% d,% Y». – user24318