如何将数字转换为 hh:mm:ss?

How can I convert number to hh:mm:ss?

我在数据框中有一列是午夜过后的秒数。我如何将该数字转换为显示为 hh:mm:ss 的时间?例如:

hrsecs
1563
13088
14309

变成

Time
00:26:03
03:38:08
03:58:29

将秒数转换为句点 (seconds_to_period) 并使用 hms 包中的 hms

library(lubridate)
library(dplyr)
df1 <- df1 %>% 
   transmute(Time = hms::hms(seconds_to_period(hrsecs)))

-输出

df1
  Time
1 00:26:03
2 03:38:08
3 03:58:29

数据

df1 <- structure(list(hrsecs = c(1563L, 13088L, 14309L)), 
class = "data.frame", row.names = c(NA, 
-3L))

1) 字符输出 转成POSIXct再格式化。没有使用包。

x <- c(1563, 13088, 14309)
tt <- format(as.POSIXct("1970-01-01") + x, "%T"); tt
## [1] "00:26:03" "03:38:08" "03:58:29"

tt <- format(structure(x, class = c("POSIXct", "POSIXt"), tzone = "UTC"), "%T")
tt
## [1] "00:26:03" "03:38:08" "03:58:29"

2) times class output 如果你希望能够操纵时间,那么这将在内部将它们表示为一天的分数,但将它们呈现为时间.

library(chron)
times(tt)
## [1] 00:26:03 03:38:08 03:58:29