Быстрый вопрос о датах в R. Посмотрите этот фрагмент кода:
Sys.Date() - months(3)
# [1] "2013-12-31"
Sys.Date() - months(18)
# [1] NA
Я загрузил пакет lubridate
и подписался на предоставленные инструкции, и я не могу понять это поведение. Раньше он работал нормально, сегодня первый день, когда я заметил, что вычитание более 12 месяцев из сегодняшней даты дает NA
(вычитание менее 12 месяцев работает нормально).
Буду признателен, если кто-нибудь сможет объяснить мне, почему это не работает, и / или предложить более «надежный» способ решения этой проблемы. Имеет ли это какое-то отношение к тому, что сегодня последний день месяца (31-й день)?
Я спрашиваю, потому что это работает:
Sys.Date() - years(2)
# [1] "2012-03-31"
lapply(1:18, function(x) Sys.Date()-months(x))
- person tonytonov   schedule 31.03.2014seq(Sys.Date(), length = 2, by = "-18 months")
илиlibrary(mondate); as.Date(as.mondate(Sys.Date()) - 18)
, которые разрешают неоднозначность двумя разными способами. - person G. Grothendieck   schedule 31.03.2014library(xts); as.yearmon(Sys.Date()) - 1:18/12
- person tonytonov   schedule 31.03.2014