Вы можете создать функцию, которая будет варьировать вашу генерацию даты для вас.Обратите внимание, что я преобразовал выходные данные в data.frame для сохранения дат в «родной» форме.
yearSequence <- function(x) {
data.frame(variable = seq(as.Date(sprintf('%s-01-01', x)), by = '8 day', length = 46))
}
Вы можете применить функцию к нужным годам.
out <- sapply(2000:2017, FUN = yearSequence, simplify = FALSE)
Объединить результат как data.frame.
result <- do.call(rbind, out)
> head(result)
variable
1 2000-01-01
2 2000-01-09
3 2000-01-17
4 2000-01-25
5 2000-02-02
6 2000-02-10
> tail(result)
variable
823 2017-11-17
824 2017-11-25
825 2017-12-03
826 2017-12-11
827 2017-12-19
828 2017-12-27