Как я могу округлить секунды до 2 мест при использовании функции second_to_period пакета R lubridate?

Я преобразовал секунды в формат DD:HH:MM:SS, используя функцию Lubridate пакета R seconds_to_period. Теперь у меня есть огромный список времен, которые выглядят так -> 2d 7H 1M 5.31500000000233S. Мне нужно округлить секунды до 2 знаков после запятой.
Я пробовал использовать round_date и ymd_hms, но получаю error in as.POSIXct.numeric(x) : 'origin' must be supplied. Я пытался получить доступ к секундам отдельно и написать функцию для их изменения, но не смог. Как я могу это решить?

Прикрепил файл duration.RData и файл durdata.R для справочных данных. Оба файла имеют одинаковые данные, но один использует dput(), а другой использует save(). Ссылка : ссылка на файлы


person Harshit Nagar    schedule 25.01.2020    source источник
comment
@RonakShah Я добавил некоторые данные.   -  person Harshit Nagar    schedule 25.01.2020
comment
Конечно @RonakShah.   -  person Harshit Nagar    schedule 25.01.2020
comment
Вот это да. Это было просто. Спасибо @RonakShah   -  person Harshit Nagar    schedule 25.01.2020


Ответы (1)


Мы можем использовать round для форматирования десятичных разрядов в объектах «Период».

head(round(time, 2))
#[1] "2d 7H 1M 5.32S"   "1d 9H 20M 37.49S" "7H 39M 37.95S" "2d 5H 0M 41.01S" 
#    "1d 8H 32M 2.8S"   "6H 36M 25.19S" 
person Ronak Shah    schedule 25.01.2020