Я анализирую данные продолжительности в R, где время в формате ЧЧ: ММ: СС, но в виде продолжительности, а не точки на временной шкале.Из-за этого представляется разумным избегать сложностей POSIXct / POSIXlt и просто конвертировать данные HH: MM: SS в секунды, а затем выполнять операции с данными длительности на основе секунд (добавление длительностей, ранжирование, гистограммы и т. Д.).Затем я мог бы преобразовать обратно из секунд в ЧЧ: ММ: СС для отчетов о результатах и для построения графиков данных.
> time.example <- "1899-12-31 01:30:32"
> class(time.example)
[1] "character"
> time.example <- strftime(time.example, format="%H:%M:%S")
> class(time.example)
[1] "character"
> time.example <- as.hms(time.example)
> class(time.example)
[1] "hms" "difftime"
> seconds <- as.duration(time.example)
> seconds
[1] "5432s (~1.51 hours)"
> class(seconds)
[1] "Duration"
attr(,"package")
[1] "lubridate"
> seconds*2
[1] "10864s (~3.02 hours)"
При этом используется пакет lubridate
.Я бы тогда использовал duration
объекты.
Это лучший подход в R?Существуют ли другие подходы наилучшей практики в этой ситуации?Обсуждение здесь и в других местах сосредоточено больше на типах данных даты и времени.