找出提供日期时给定季度的天数?

问题描述 投票:0回答:1

我有一个包含大量日期的数据框(超过 2500 万行)。示例数据如下

df <- data.frame(dat = as.Date(c('2015-10-10', '2016-04-04', '2016-01-31', '2017-04-16')))

所有日期均采用 YYYY-MM-DD 格式。

我想添加一列,提供日期所在季度的天数。

我知道这里只有五种独特的可能性(第二、第三和第四季度的天数不变,第一季度的天数取决于是否是闰年)。我目前正在使用手动方法提取年份,然后找出闰年,然后通过提取季度来分配天数。然而,这似乎是一种缓慢而繁琐的做事方式 - 有没有更好、更直接的函数可以给出这个答案?

r datetime
1个回答
0
投票

使用

lubridate::quarter
你可以:

library(lubridate)
#> 
#> Attaching package: 'lubridate'
#> The following objects are masked from 'package:base':
#> 
#>     date, intersect, setdiff, union

df <- data.frame(dat = as.Date(c("2015-10-10", "2016-04-04", "2016-01-31", "2017-04-16")))

as.integer(
  quarter(df$dat, type = "date_last") - quarter(df$dat, type = "date_first")
)
#> [1] 91 90 90 90
© www.soinside.com 2019 - 2024. All rights reserved.