Конвертировать секунды в дни: часы: минуты: секунды
Я хочу преобразовать секунды в часах минут и секунд в R.
Пример
86400seconds-1day
gmdate("d H:i:s",86400)
Вот как я пытался.
Ответы
Ответ 1
Вы можете попробовать
library(lubridate)
seconds_to_period(86400)
#[1] "1d 0H 0M 0S"
seconds_to_period(48000)
#[1] "13H 20M 0S"
Если вам нужно format
td <- seconds_to_period(86400)
sprintf('%02d %02d:%02d:%02d', day(td), [email protected], minute(td), second(td))
#[1] "01 00:00:00"
Если он охватывает >99
дней,
td <- seconds_to_period(1e7)
sprintf('%03d %02d:%02d:%02d', day(td), [email protected], minute(td), second(td))
#[1] "115 17:46:40"
Ответ 2
Это также работает с использованием seconds.to.hms
от kimisc
, хотя и не столь изящным, как ответ @akrun:
library(kimisc)
library(dplyr)
library(stringr)
HMS = seconds.to.hms(86400)
HMS = seconds.to.hms(48000)
HMS = seconds.to.hms(1e7)
HMS %>%
str_extract("^\\d+") %>%
as.numeric() %>%
{paste(.%/%24, .%%24)} %>%
str_replace(HMS, "^\\d+", .)
Результат:
[1] "1 0:00:00"
[1] "0 13:20:00"
[1] "115 17:46:40"