我所阅读的所有文档都表明,lubridate 1.7.4 中的持续时间可以是负数,包括 R 文档中提供的示例:
> duration(-1, "days")
> duration(day = -1)
2009年的一个修复bug的例子与此类似,它提供了示例输出:
> new_duration(secs = -1, mins = -1, hours = -1)
[1] "-1 hours, -1 minutes and -1 seconds"
但是当我运行
duration(-1, "days")
时,R会返回:[1] "86400s (~1 days)"
这是怎么回事?
a - b
有意义,负值的b
也必然有意义。lubridate
允许从时间中减去持续时间,因此允许这些持续时间为负,并支持否定操作是有意义的。 - Ken Williams