A:如何使用 lubridate 获取该月的第一天或最后一天


您可以使用以下方法使用lubridate包中的函数获取 R 中日期的该月的第一天或最后一天:

方法一:获取该月的第一天

 library (lubridate)

df$first_day <- floor_date(ymd(df$date), ' month ')

方法2:获取该月的最后一天

 library (lubridate)

df$last_day <- ceiling_date(ymd(df$date), ' month ') - days( 1 )

以下示例展示了如何在实践中使用以下数据框使用每种方法:

 #create data frame
df <- data. frame (date=c('2022-01-05', '2022-02-18', '2022-03-21',
                        '2022-09-15', '2022-10-30', '2022-12-25'),
                 sales=c(14, 29, 25, 23, 39, 46))

#view data frame
df

        dirty date
1 2022-01-05 14
2 2022-02-18 29
3 2022-03-21 25
4 2022-09-15 23
5 2022-10-30 39
6 2022-12-25 46

示例 1:使用 Lubricant 获取该月的第一天

以下代码显示如何使用 lubridate 包的Floor_date()函数获取日期列中每个值的该月的第一天:

 #add new column that contains first day of month
df$first_day <- floor_date(ymd(df$date), ' month ')

#view updated data frame
df

        date sales first_day
1 2022-01-05 14 2022-01-01
2 2022-02-18 29 2022-02-01
3 2022-03-21 25 2022-03-01
4 2022-09-15 23 2022-09-01
5 2022-10-30 39 2022-10-01
6 2022-12-25 46 2022-12-01

请注意,新的first_day列中的值包含日期列中每个值的该月的第一天。

注意:我们使用ymd()函数首先将日期列中的字符串转换为可识别的日期格式。

示例 2:使用 Lubridate 获取该月的最后一天

以下代码显示如何使用 lubridate 包的Ceiling_date()函数获取日期列中每个值的该月的最后一天:

 #add new column that contains last day of month
df$last_day <- ceiling_date(ymd(df$date), ' month ') - days( 1 )

#view updated data frame
df

        date sales last_day
1 2022-01-05 14 2022-01-31
2 2022-02-18 29 2022-02-28
3 2022-03-21 25 2022-03-31
4 2022-09-15 23 2022-09-30
5 2022-10-30 39 2022-10-31
6 2022-12-25 46 2022-12-3122-12-01

请注意,新的last_day列中的值包含日期列中每个值该月的最后一天。

有关更多日期格式选项,请参阅 Lubridate文档页面

其他资源

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

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

添加评论

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