Функция as.POSIXlt
предоставляет список, который может быть извлечен для получения числовых значений месяца, подобных C, поскольку они начинаются с 0 для января. Это не должно быть проблемой для разделения. См. Информацию о вариантах в разделе «Подробности», но я могу вам сказать, что ежеквартального варианта нет.
Вот код для доставки недель:
as.POSIXlt( Sys.Date()+1:60 )$yday %/% 7
[1] 13 13 13 13 13 14 14 14 14 14 14 14 15 15 15 15 15 15 15 16 16 16 16 16 16 16 17 17 17 17
[31] 17 17 17 18 18 18 18 18 18 18 19 19 19 19 19 19 19 20 20 20 20 20 20 20 21 21 21 21 21 21
Но обратите внимание, что это не обязательно будет соответствовать вашему выбору начала недели. Возможно, вам придется вычесть числовой день недели первого числа года, чтобы он правильно выровнялся. (Воскресенье - нулевой рабочий день.)
as.POSIXlt( Sys.Date()+1:60 - as.POSIXlt( as.Date( paste0( format(Sys.Date(), "%Y"),"-01-01")))$wday )$yday %/% 7
[1] 13 13 13 13 13 13 14 14 14 14 14 14 14 15 15 15 15 15 15 15 16 16 16 16 16 16 16 17 17 17
[31] 17 17 17 17 18 18 18 18 18 18 18 19 19 19 19 19 19 19 20 20 20 20 20 20 20 21 21 21 21 21
Еще один вариант, позволяющий получить этикетку для печати, zoo::as.yearmon
.
as.POSIXlt( Sys.Date()+1:60 )$mon
[1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
[46] 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5
zoo::as.yearmon( Sys.Date()+1:60 )
[1] "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018"
[9] "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018"
[17] "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018" "Apr 2018"
[25] "Apr 2018" "Apr 2018" "Apr 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018"
[33] "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018"
[41] "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018"
[49] "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018" "May 2018"
[57] "May 2018" "May 2018" "Jun 2018" "Jun 2018"
В пакете zoo также есть функция as.yearqtr
:
zoo::as.yearqtr( Sys.Date()+seq(0, 180, by=30) )
#[1] "2018 Q2" "2018 Q2" "2018 Q2" "2018 Q3" "2018 Q3" "2018 Q3" "2018 Q3"
«Под капотом» (или «капотом», в зависимости от случая) эта функция фактически также выдает числовые значения, но с классом, который имеет специальный метод печати:
unclass( zoo::as.yearqtr( Sys.Date()+seq(0, 180, by=30) ) )
[1] 2018.25 2018.25 2018.25 2018.50 2018.50 2018.50 2018.50
person
IRTFM
schedule
03.04.2018
dput(data,10)
, возможно, мы сможем вам помочь. И ответьте на вопрос @MaxFt. - person M--   schedule 03.04.2018