2017-02-07 6 views
-2

Я бы хотел выполнить обратную операцию R converting a factor YYYY-MM to a date.Конвертировать дату в формате ГГГГ-ММ-ДД в ГГГГ-ММ

У меня есть кадр данных (df) с датами, представленными как формат ГГГГ-ММ-ДД (столбец «Дата1»), и хотел бы преобразовать их в формат ГГГГ-ММ. Диапазон дней между 0-31, но это не обязательно для моего формата YYYY-MM.

Дело в том, что у меня есть другой набор столбцов, которые находятся в формате YYYY-MM (столбец «Date2»), и вы хотите вычислить различия между ними в течение целого месяца (значения x, y и z в столбце «Разница (месяцев) ")

Date1  Date2 Difference(months) 
2008-08-11 1995-02 x 
2010-06-18 1972-09 y 
2011-04-22 1956-11 z 

Doing df$Date1_new <- as.Date(df$Date1, "%Y-%m") просто дает ряд "значений NA".

Пожалуйста, можете ли вы дать мне способ, который делает то, что я прошу, или другой более простой метод, который дает тот же желаемый результат?

+2

Вы должны сначала преобразовать их в собственных 'Date's, а затем использовать' format' –

+0

Пожалуйста, объясните, что вы имеете в виду преобразование в соответствующие даты и использование формата. Конвертировать что? – Bob

+1

Я имею в виду что-то вроде 'format (as.Date (df $ Date1,"% Y-% m-% d "),"% Y-% m ")' –

ответ

2

Использование format(as.Date(df$Date1, "%Y-%m-%d"), "%Y-%m") работ для преобразования 2008-08-11 в 2008-08 - как это было предложено @docendo discimus

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