我的问题很简单,但是我没有真正找到答案。
我想写一个像这样的函数:
get_dst <- function(y = 2019){
}
y是函数的年份输入
输出应该是代表欧洲夏令时开始和结束的日期时间的列表或向量。
2019年的输出将是:
31-03-2019 02:00:00, 27-10-2019 03:00:00
2020年的输出将是:
29-03-2020 02:00:00, 25-10-2019 03:00:00
而且我认为dplyr在对日期时间的变量进行分组时应该有一种处理它们的方法,因为很难与它们一起使用。
在函数中,我们可以创建一个序列并应用dst
以返回TRUE / FALSE,子集并获得range
get_dst <- function(y = 2019, tz){
start <- paste0(y, '-01-01')
end <- paste0(y, '-12-31')
d1 <- seq(as.POSIXct(start, tz = tz),
as.POSIXct(end, tz =tz), by = 'hour')
range(d1[lubridate::dst(d1)])
}
get_dst(2019, "America/New_York")