Подтвердить что ты не робот

R Strptime Год и месяц без указания разделителя NA

Я, наверное, делаю что-то глупое и не вижу его, но:

> strptime("201101","%Y%m")
[1] NA

С помощью strptime:

% Y Год с веком
% m Месяц в виде десятичного числа (01-12)

4b9b3361

Ответ 1

Просто вставьте поле дня (скажем, "01" ), которое вы игнорируете:

R> shortdate <- "201101"
R> as.Date(paste(shortdate, "01", sep=""), "%Y%m%d")
[1] "2011-01-01"
R> 

Я предпочитаю as.Date() для дат и strptime() для POSIXct объектов, т.е. дат и времени.

Затем вы можете преобразовать проанализированный объект Date в объект POSIXlt для извлечения года и месяца:

R> mydt <- as.Date(paste(shortdate, "01", sep=""), "%Y%m%d")
R> myp <- as.POSIXlt(mydt)
R> c(myp$year, myp$mon)
[1] 111   0
R> 

Это стандартное поведение POSIX с годами как "год - 1900" и месяцы с нулевым индексом.