如何在 r 中使用 lubridate 生成日期序列


您可以使用以下基本语法使用 R 中的lubridate包生成日期序列:

 seq(ymd(' 2022-01-01 '), ymd(' 2022-10-31 '), by=' 1 week ')

此特定示例将生成从1/1/202210/31/2022的一系列日期,间隔为一周

要使用不同的间隔,只需将替换为其他时间单位,例如日、月、季度、年等。

以下示例展示了如何在实践中使用此语法生成日期序列。

示例 1:按天生成日期序列

以下代码显示如何生成从 01/01/2022 到 02/15/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"

结果是从 1/1/2022 到 02/25/2022 的 46 个日期序列。

注意:您也可以只输入,而不是输入1 天

示例 2:按周生成日期序列

以下代码显示如何生成从 01/01/2022 到 02/15/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"

结果是从 1/1/2022 到 02/25/2022 每周 7 个日期的序列。

我们还可以使用以下代码生成从 01/1/2022 到 02/25/2022 的日期序列,间隔为2 周

 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"

结果是从 01/01/2022 到 02/25/2022 的 4 个日期序列,间隔为 2 周。

示例 3:生成每月的日期序列

以下代码显示如何生成从 01/01/2022 到 10/31/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"

结果是从 01/01/2022 到 10/31/02/2022 每月 10 个日期的序列。

请注意,在本教程中,我们仅分享了一些有关如何使用lubridate包生成日期序列的示例。

您可以随意更改开始日期、结束日期和间隔以创建您想要的特定日期序列。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在R中将日期转换为数字
如何从R中的日期中提取月份
如何在 R 中为日期添加和减去月份

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注