如何在 R 中添加小数时间?

How can I add fractional times in R?

我有大量这种格式的日期:

dt = as.POSIXct("2004-04-02 12:45:00 UTC")

而且我必须 add/subtract 可能并不总是完整的数字 numbers.I 我正在使用 lubridate 库。

示例:

 dt - days(2)
[1] "2004-03-31 12:45:00 UTC"

但是,

dt - days(1.5)
Error in validObject(.Object) : 
  invalid class “Period” object: periods must have integer values

这个操作有替代方案吗?

days(1.5) 出现错误,它不允许小数句点。你可以这样做:

dt - days(1) - hours(12)

dt - 1.5*24*3600

或者像@DirkEddelbuettel 这样的人可能知道一个基本日期函数也可以工作。啊,是 difftime(我没有足够的时间来记住这些事情)。

dt - as.difftime(1.5, units="days")

而且,正如@maximusdooku 指出的那样:

dt - ddays(1.5)

(根据代码,看起来 ddays 只是 returns 请求时间段内的秒数,加上一些 class 信息。)