2015-07-29 3 views
-1

Общий код, который принимает все виды формата данных в R.Как установить формат дату в R

У меня возникли проблемы в получении даты правильно .. Мой набор данных даты в dd- mm-yy, сохраненный в CSV-файле. Когда я пытаюсь запустить следующую программу, я получаю неправильный вывод.

df$date <- as.Date(as.POSIXct(df$date,format='%d %m %Y')) 

Это мой выход:

Вместо того чтобы показывать это в выходном экране

18-10-2000 

он показывает:

[1] "0018-10-20" 

Кроме того, могли бы вы объяснить мне, как я могу сделать мой код приемлемым для всех типов форматов данных, которые хранятся в CSV-файле, например:

DD-MM-YY 
MM-DD-YY 
Month_Name DD YY 
Month_Name YY DD 
DD Month_Name YY 
YY Month_Name DD 

and other formats.. 
+1

'as.Date ('15 -06-2015 ','% d-% m-% Y ')' дает вам объект R' date '. Введите 'class ('15 -06-2015 ','% d-% m-% Y ')', и вы должны увидеть '[1]« Дата ». Для разных форматов даты проверьте руководства. Google - ваш друг :-) – hvollmeier

+0

Как программа знает правильный формат «01-02-03»? Это 2 января 2003 года, 3 февраля 2001 года, 1 февраля 2003 года, 2 марта 2001 года? –

+0

@PierreLafortune, он не знает. Вот почему вам нужно добавить параметр формата. :-) – hvollmeier

ответ

0

вы можете попробовать это

x = "18-10-2000" 
format(as.Date(x,format='%d-%m-%Y'), format='%d-%m-%Y') 
y = "18-10-15" # means "dd-mm-yy" 
format(as.Date(y,format='%d-%m-%y'), format='%d-%m-%y') 

вы также можете проверить ?strptime, чтобы получить список других форматов.

0

Вы можете использовать lubridate:

lubridate::dmy(df$data) 

или в базе R as.Date()

as.Date(f$LASTMODIFIEDDATE,format='%d-%m-%Y') 

Как для других форматов даты, я бы сказал чек lubridate. Команды гибкие (ymd, dmy и т. Д.). Но если столбец даты содержит все указанные вами форматы, у вас возникнут проблемы, одна функция не поможет.

Возможно, кто-то с хорошим знанием регулярных выражений может помочь вам форматировать столбец в один формат даты.

Смежные вопросы