以月为单位计算时间时出现奇怪的润滑行为

Strange lubridate behaviour when calculating time in months

提问人:fair21comic 提问时间:11/8/2023 更新时间:11/8/2023 访问量:17

问:

我正在尝试以月为单位计算两个日期之间的时间,特别是我对该时间是否< 18 个月感兴趣。我使用润滑剂得到的结果相互矛盾。

起初,我使用例如

lubridate::interval("2015-05-11", "2016-11-09")/months(1)

返回值 17.935 个月。但是我的同事手动进行了这个计算,并得出了一个略有不同的值(重要的是> 18 个月)。

经过一番调查,我发现如果我将上述公式中的两个区间强制转换为数字:

as.numeric(lubridate::interval("2015-05-11", "2016-11-09"))/as.numeric(months(1))

我得到的值与我的同事相同,即 18.004。

但我的问题是:为什么强制数字会产生这种差异?我希望它不会有什么区别。

润滑剂

评论


答: 暂无答案