Как мне отформатировать значение difftime () следующим образом: Y: M: W: D: H: S - PullRequest
0 голосов
/ 13 мая 2019

В настоящее время я использую функцию difftime(), чтобы получить истекшее время между двумя Sys.time() объектами.

т.е.:

t1 <- Sys.time()
t2 <- Sys.time()
elapsed_time <- difftime(t2, t1)

Токовый выход выглядит примерно так:

5.188578 days

Я хотел бы получить вывод, показывающий истекшее время следующим образом:

5 days : 4 hours : 30 mins : 15 secs

или что-то похожее на это.

Я уже попробовал функцию strptime(), но, похоже, она работает для дат, поэтому я не уверен, как ее использовать.

Я также посмотрел на lubridate periods() функции, которые, кажется, дают вывод, как это: "3m 12d 0H 0M 0S" (что было бы здорово), но это, кажется, не работает с моим elapsed_time объект.

Я также посмотрел на stackoverflow и google, но не нашел ответ, который хотел.

поэтому мне было интересно, кто-нибудь может дать мне несколько подсказок о том, как поступить. Спасибо.

Редактировать: я нашел несколько хороший ответ с комментарием Дэйва и Как получить разницу во времени при выводе с несколькими единицами страница.

library(lubridate)
t1 <- Sys.time()
t2 <- Sys.time()
elapsed_time <- difftime(t2, t1)

as.period(elapsed_time)

Формат результата вывода:

"3H 37M 55S"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...