Как создать последовательность дат со смазкой в r
Вы можете использовать следующий базовый синтаксис для создания последовательности дат с помощью пакета lubridate в R:
seq(ymd(' 2022-01-01 '), ymd(' 2022-10-31 '), by=' 1 week ')
В этом конкретном примере будет сгенерирована последовательность дат с 01.01.2022 по 31.10.2022 с интервалом в одну неделю .
Чтобы использовать другой интервал, просто замените неделю другой единицей времени, например днем, месяцем, кварталом, годом и т. д.
Следующие примеры показывают, как использовать этот синтаксис для создания последовательности дат на практике.
Пример 1: Создание последовательности дат по дням
Следующий код показывает, как генерировать последовательность дат с 01.01.2022 по 15.02.2022 в день:
library (lubridate)
#generate sequence of dates from 1/1/2022 to 2/15/2022 by day
seq(ymd(' 2022-01-01 '), ymd(' 2022-02-15 '), by=' 1 day ')
[1] "2022-01-01" "2022-01-02" "2022-01-03" "2022-01-04" "2022-01-05"
[6] "2022-01-06" "2022-01-07" "2022-01-08" "2022-01-09" "2022-01-10"
[11] "2022-01-11" "2022-01-12" "2022-01-13" "2022-01-14" "2022-01-15"
[16] "2022-01-16" "2022-01-17" "2022-01-18" "2022-01-19" "2022-01-20"
[21] "2022-01-21" "2022-01-22" "2022-01-23" "2022-01-24" "2022-01-25"
[26] "2022-01-26" "2022-01-27" "2022-01-28" "2022-01-29" "2022-01-30"
[31] "2022-01-31" "2022-02-01" "2022-02-02" "2022-02-03" "2022-02-04"
[36] "2022-02-05" "2022-02-06" "2022-02-07" "2022-02-08" "2022-02-09"
[41] "2022-02-10" "2022-02-11" "2022-02-12" "2022-02-13" "2022-02-14"
[46] "2022-02-15"
Результатом является последовательность из 46 дат с 1.01.2022 по 25.02.2022.
Примечание . Вместо ввода 1 дня вы также можете просто ввести день .
Пример 2: генерировать последовательность дат по неделям
Следующий код показывает, как генерировать последовательность дат с 01.01.2022 по 15.02.2022 в неделю:
library (lubridate)
#generate sequence of dates from 1/1/2022 to 2/15/2022 by week
seq(ymd(' 2022-01-01 '), ymd(' 2022-02-15 '), by=' 1 week ')
[1] "2022-01-01" "2022-01-08" "2022-01-15" "2022-01-22" "2022-01-29"
[6] "2022-02-05" "2022-02-12"
В результате получается последовательность из 7 дат с 1.01.2022 по 25.02.2022 в неделю.
Мы также могли бы использовать следующий код для создания последовательности дат с 1.01.2022 по 25.02.2022 с двухнедельными интервалами:
library (lubridate)
#generate sequence of dates from 1/1/2022 to 2/15/2022 by 2 weeks
seq(ymd(' 2022-01-01 '), ymd(' 2022-02-15 '), by=' 2 week ')
[1] "2022-01-01" "2022-01-15" "2022-01-29" "2022-02-12"
В результате получается последовательность из 4 дат, идущих с 01.01.2022 по 25.02.2022 с интервалом в 2 недели.
Пример 3. Создание последовательности дат по месяцам.
Следующий код показывает, как сгенерировать последовательность дат с 01.01.2022 по 31.10.2022 в месяц:
library (lubridate)
#generate sequence of dates from 1/1/2022 to 10/31/2022 by month
seq(ymd(' 2022-01-01 '), ymd(' 2022-02-15 '), by=' 1 month ')
[1] "2022-01-01" "2022-02-01" "2022-03-01" "2022-04-01" "2022-05-01"
[6] "2022-06-01" "2022-07-01" "2022-08-01" "2022-09-01" "2022-10-01"
Результатом является последовательность из 10 дат с 01.01.2022 по 31.10.2022 в месяц.
Обратите внимание, что в этом уроке мы поделились лишь несколькими примерами того, как создать последовательность дат с помощью пакета lubridate .
Не стесняйтесь изменять дату начала, дату окончания и интервал, чтобы создать нужную последовательность дат.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как преобразовать дату в числовое значение в R
Как извлечь месяц из даты в R
Как добавить и вычесть месяцы к дате в R