怎么把09:35:36从整数转换成时间格式?

时间:2019-09-13 13:18:20

标签: r

我有以下数据。 order.time是整数格式。如何在不添加日期的情况下将其转换为时间格式?

order.time
9:58:58
9:58:26
9:56:28
9:56:18
9:56:12

我尝试使用parse_date_timestrptime,但是所有功能都在最终数据中添加了日期和时区。我只想将时间从整数格式转换为可以在x轴上随时间绘制图的格式

3 个答案:

答案 0 :(得分:2)

在tidyverse中,hms程序包为一天中的某个时间提供了一个S3类:

> time <- hms::as_hms(c("9:58:58", "9:58:26", "9:56:28", "9:56:18", "9:56:12"))
> time
09:58:58
09:58:26
09:56:28
09:56:18
09:56:12
> class(time)
[1] "hms"      "difftime"
> str(time)
 'hms' num [1:5] 09:58:58 09:58:26 09:56:28 09:56:18 ...
 - attr(*, "units")= chr "secs"

函数as_hms()也采用整数参数,但仅需几秒钟:

> (time_in_hours <- c(6, 9, 12))
[1]  6  9 12
> hms::as_hms(time_in_hours * 3600)
06:00:00
09:00:00
12:00:00

答案 1 :(得分:1)

使用a.py

as.POSIXct()

然后您将有一个时间对象,即times <- as.POSIXct(c('9:58:58', 9:58:26), format = '%H:%M:%S') 将为您提供:-32秒的时间差。

您可以按原样绘制它们,也可以使用times[2] - times[1]对其进行格式化。

例如:format(x, format)将给您'09:58:58'。

答案 2 :(得分:0)

我会签出11001\\1000 becomes 1 1 0 0 1 \\ 1 0 0 0 becomes 11001\1000 包裹。它几乎在所有时间都有效。

anytime