我有以下数据。order.time是整数格式。如何在不添加日期的情况下将其转换为时间格式?
order.time
9:58:58
9:58:26
9:56:28
9:56:18
9:56:12我尝试过使用parse_date_time、strptime,但所有的函数都在最终数据中添加了日期和时区。我只想将时间从整数格式转换为可以在x轴上绘制带有时间的曲线图的格式
发布于 2019-09-13 21:38:49
在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发布于 2019-09-13 21:39:13
使用as.POSIXct():
times <- as.POSIXct(c('9:58:58', 9:58:26), format = '%H:%M:%S')然后你会有一个time对象,也就是:times[2] - times[1]会给你:-32秒的时间差。
您可以按原样绘制它们,也可以使用format(x, format)对它们进行格式化。
例如:format(times[1], format = '%H:%M:%S')会给出'09:58:58‘。
发布于 2019-09-13 21:37:45
我会查看anytime包。它几乎在所有的时间都是有效的。
library(anytime)
order.time <- anytime(order.time)https://stackoverflow.com/questions/57924395
复制相似问题