2016-09-12 12 views
0

Я пытаюсь отформатировать даты с R. Может ли кто-нибудь объяснить, почему R дает ошибку, когда эти две строки являются точно такими же форматами? Я не могу понять, как управлять этими строками даты, и любая помощь очень ценится, как я новичок работает с R.даты форматирования с R и as.date

> as.Date("09/18/2016 1:00 PM EDT") 
Error in charToDate(x) : 
    character string is not in a standard unambiguous format 
> as.Date("09/08/2016 8:30 PM EDT") 
[1] "0009-08-20" 

bad <- as.Date("09/18/2016 1:00 PM EDT") 
good <- as.Date("09/08/2016 8:30 PM EDT") 
+0

2-й преобразование было также неправильно - это говорит год 9 AD. Самый простой способ справиться с датами - использовать 'lubridate'. –

+0

Вам нужно указать формат, см. '? As.Date'. Например: 'as.Date (даты, формат ="% m /% d /% y ")' – Jaap

ответ

2

Вы пропустили факт (и предупреждение), что нестандартный формат необходим формат строка для as.Date(). И вы также хотите strptime(), если вы хотите разобрать часы/минуты и т.д.:

R> strptime("09/18/2016 1:00 PM EDT", "%m/%d/%Y %I:%M %p") 
[1] "2016-09-18 13:00:00 CDT" 
R> 
+0

Это сработало для меня, спасибо Dirk! – Developing

+0

Рад это услышать. В этом случае, пожалуйста, рассмотрите _accepting_ (щелкните по отметке, которую видите только) и/или _upvoting_ (щелкните по треугольнику, обращенному вверх). Вот как работает StackOverflow ... –

+0

У меня пока не хватает репутации, но я буду – Developing