我发现了一种相当出乎意料的 lubridate 行为。以下 R 代码返回 NAs 而不是 '2010-10-17 08:00:00':
library(lubridate);
as.POSIXct("2010-10-17 07:59:01") + seconds(59);
as.POSIXct("2010-10-17 07:59:30") + seconds(30);
而以下代码段返回预期值('2010-10-17 07:59:00'):
as.POSIXct("2010-10-17 07:58:01") + seconds(59);
as.POSIXct("2010-10-17 07:58:30") + seconds(30);
这是 lubridate 中的错误还是我只需要更彻底地 RTFM?!:)
更新:使用的软件:Gnu R v 3.0.2,lubridate 1.3.3
更新 2:使用dseconds而不是seconds解决了这个问题。
正确的结果计算如下:
as.POSIXct("2010-10-17 07:58:01") + dseconds(59);
as.POSIXct("2010-10-17 07:58:30") + dseconds(30);