Ответ 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" и месяцы с нулевым индексом.