Я пытаюсь добавить месяц к дате, которую у меня есть. Но тогда это невозможно в прямой форме. Вот что я пробовал.
d <- as.Date("2004-01-31")
d + 60
# [1] "2004-03-31"
Добавление wont help, поскольку месяц не будет перекрываться.
seq(as.Date("2004-01-31"), by = "month", length = 2)
# [1] "2004-01-31" "2004-03-02"
Выше может работать, но опять же это не прямо. Кроме того, он также добавляет 30 дней или что-то еще до даты, которая имеет такие проблемы, как ниже
seq(as.Date("2004-01-31"), by = "month", length = 10)
# [1] "2004-01-31" "2004-03-02" "2004-03-31" "2004-05-01" "2004-05-31" "2004-07-01" "2004-07-31" "2004-08-31" "2004-10-01" "2004-10-31"
В приведенном выше примере, для первых двух дат, месяц havent изменен.
Также следующий подход также не удался в течение месяца, но был успешным в течение года
d <- as.POSIXlt(as.Date("2010-01-01"))
d$year <- d$year +1
d
# [1] "2011-01-01 UTC"
d <- as.POSIXlt(as.Date("2010-01-01"))
d$month <- d$month +1
d
Ошибка в
format.POSIXlt(x, usetz = TRUE)
: неверный аргумент "x"
Каков правильный способ сделать это?