Да, они могут быть отрицательными.Из чтения исходного кода это артефакт метода print для класса Duration
.Проверка объекта показывает, что он остается отрицательным, несмотря на то, что не отображается как таковой, и ведет себя как отрицательное число, как и должно быть, как показано ниже.
Я думаю, что виновником является строка 102 исходного кода здесь .Функция format.Duration
вызывает abs
при печати Duration
.Я предполагаю, что это предполагаемое поведение, хотя вам придется обсудить его с разработчиками по причинам (вероятно, потому что люди склонны понимать длительности как положительные.)
library(lubridate)
neg <- duration(-1)
pos <- duration(2)
neg + pos
#> [1] "1s"
unclass(neg)
#> [1] -1
Создано в 2018-06-01 представьте пакет (v0.2.0).