2015-11-06 3 views
2

Я использую as.Date для преобразования строки типа Aug-2002 в объект даты, представляющий собой только месяц августа 2002 года, или если необходимо указать день, 1 августа 2002 г. .Невозможно преобразовать строку Month-Year в Date в R

Однако

> as.Date(c('07-2002'), "%M-%Y") 
[1] "2002-11-06" 

> as.Date(c('Aug-2002'), "%b-%Y") 
[1] NA 

Почему первая строка кода преобразовать его в другой месяц и день? А второй - NA?

Я указал на this table для символов форматирования.

enter image description here

+0

% M is iminutes. % m - месяц. –

+0

"% b Сокращенное название месяца в ** текущем регионе на этой платформе **." И вы должны указать день, чтобы получить «Дата». – Roland

+0

@ G.Grothendieck Является ли таблица, на которую я ссылался в вопросе неправильной таблицы? – Nyxynyx

ответ

5

Проблема у Вас есть то, что сроки у вас есть не имеют значения в день. Без значения дня формат = "% m-% Y" не будет работать в as.Date. Ниже перечислены эти варианты:

as.Date(paste0('01-', c('07-2002')), format="%d-%m-%Y") 

library(zoo) #this is a little more forgiving: 
as.yearmon(c('07-2002'), "%m-%Y") 
as.yearmon(c('Aug-2002'), "%b-%Y") 

as.Date(as.yearmon(c('07-2002'), "%m-%Y")) 
Смежные вопросы