Возможно, пакет hms
делает то, что ожидает OP.hms
реализует класс S3 для хранения и форматирования значений времени суток на основе класса difftime.
library(hms)
as.hms(df)
01:31:12.200000
01:31:14.560000
01:31:14.840000
Он может использоваться для расчета, например,
diff(as.hms(df))
00:00:02.360000
00:00:00.280000
Обратите внимание, что методы print()
и format()
не принимают другие параметры и не учитывают options(digits.secs = 2)
.
Класс hms
аналогичен функции lubridate
as.hms()
, которая создает объект периода:
lubridate::hms(df)
[1] "1H 31M 12.2S" "1H 31M 14.56S" "1H 31M 14.84S"
Арифметика также может быть выполнена:
diff(lubridate::hms(df))
[1] 2.36 0.28
Обратите внимание, что внутреннее представление объектов времени, даты и даты и времени обычно основано на числовых типахчтобы разрешить делать расчеты.Внутреннее представление отличается от символьной строки при печати объекта.
Класс ITime
в пакете data.table
- это класс времени дня, который хранит целое число секунд в дне.Таким образом, он не может обрабатывать миллисекунды.