Как выбрать последовательность выбранного месяца с апреля по сентябрь на 30 лет на языке R? - PullRequest
0 голосов
/ 21 декабря 2018

Я использую

d2 <- seq.Date(as.Date("1991-05-03"), length=37, by="5 days") 

вывод:

 [1] "1991-05-03" "1991-05-08" "1991-05-13" "1991-05-18" "1991-05-23" "1991-05-28" "1991-06-02" "1991-06-07"
 [9] "1991-06-12" "1991-06-17" "1991-06-22" "1991-06-27" "1991-07-02" "1991-07-07" "1991-07-12" "1991-07-17"
[17] "1991-07-22" "1991-07-27" "1991-08-01" "1991-08-06" "1991-08-11" "1991-08-16" "1991-08-21" "1991-08-26"
[25] "1991-08-31" "1991-09-05" "1991-09-10" "1991-09-15" "1991-09-20" "1991-09-25" "1991-09-30" "1991-10-05"
[33] "1991-10-10" "1991-10-15" "1991-10-20" "1991-10-25" "1991-10-30".

Если я хочу создать для нескольких лет, например, для 1992-2005, как я могу выбрать и сохранить его в последовательностикак Date?

1 Ответ

0 голосов
/ 21 декабря 2018

Если я правильно понимаю, ФП хочет создать вектор дат для периодов с апреля по сентябрь для периодов 1992-2005 гг. Каждые 5 дней.

Один из возможных подходов - использовать outer() иlubridate::years().

Сначала создается базовая последовательность дат d2 на период с апреля по сентябрь первого года 1992 года. Затем outer() используется для репликации базовой последовательности, «сдвинутой» на один год.

d2 <- seq.Date(as.Date("1992-04-01"), as.Date("1992-09-30"), by="5 days")
outer(d2, 0:(2005 - 1992), function(d, y) d + lubridate::years(y))
  [1] "1992-04-01" "1992-04-06" "1992-04-11" "1992-04-16" "1992-04-21" "1992-04-26" "1992-05-01" "1992-05-06"
  [9] "1992-05-11" "1992-05-16" "1992-05-21" "1992-05-26" "1992-05-31" "1992-06-05" "1992-06-10" "1992-06-15"
 [17] "1992-06-20" "1992-06-25" "1992-06-30" "1992-07-05" "1992-07-10" "1992-07-15" "1992-07-20" "1992-07-25"
 [25] "1992-07-30" "1992-08-04" "1992-08-09" "1992-08-14" "1992-08-19" "1992-08-24" "1992-08-29" "1992-09-03"
 [33] "1992-09-08" "1992-09-13" "1992-09-18" "1992-09-23" "1992-09-28" "1993-04-01" "1993-04-06" "1993-04-11"
 [41] "1993-04-16" "1993-04-21" "1993-04-26" "1993-05-01" "1993-05-06" "1993-05-11" "1993-05-16" "1993-05-21"
...
[473] "2004-08-19" "2004-08-24" "2004-08-29" "2004-09-03" "2004-09-08" "2004-09-13" "2004-09-18" "2004-09-23"
[481] "2004-09-28" "2005-04-01" "2005-04-06" "2005-04-11" "2005-04-16" "2005-04-21" "2005-04-26" "2005-05-01"
[489] "2005-05-06" "2005-05-11" "2005-05-16" "2005-05-21" "2005-05-26" "2005-05-31" "2005-06-05" "2005-06-10"
[497] "2005-06-15" "2005-06-20" "2005-06-25" "2005-06-30" "2005-07-05" "2005-07-10" "2005-07-15" "2005-07-20"
[505] "2005-07-25" "2005-07-30" "2005-08-04" "2005-08-09" "2005-08-14" "2005-08-19" "2005-08-24" "2005-08-29"
[513] "2005-09-03" "2005-09-08" "2005-09-13" "2005-09-18" "2005-09-23" "2005-09-28"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...