减去期间和 DST 更改

subtract periods and DST changes

我有资料

library(data.table); library(lubridate)
dat <- data.table(t=as.POSIXct(c("2014-09-26 01:01:00","2014-09-26 02:01:00","2014-09-26 03:01:00"), tz="CET"))
> dat
                     t
1: 2014-09-26 01:01:00
2: 2014-09-26 02:01:00
3: 2014-09-26 03:01:00

我想减去 180 天。由于夏令时的变化,使用lubridatedays(.)的结果是

> dat$t - days(180)
[1] "2014-03-30 01:01:00 CET"  NA                         "2014-03-30 03:01:00 CEST"

我想知道是否有一种方法可以减去考虑 DST 更改的天数。

减去180天的秒数:

dat$t - 180*60*24*60
[1] "2014-03-30 00:01:00 CET"  "2014-03-30 01:01:00 CET"  "2014-03-30 03:01:00 CEST"