首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将09:35:36整数格式转换为时间格式?

如何将09:35:36整数格式转换为时间格式?
EN

Stack Overflow用户
提问于 2019-09-13 21:18:20
回答 3查看 53关注 0票数 1

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

代码语言:javascript
运行
复制
order.time
9:58:58
9:58:26
9:56:28
9:56:18
9:56:12

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

EN

回答 3

Stack Overflow用户

发布于 2019-09-13 21:38:49

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

代码语言:javascript
运行
复制
> 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()也接受整数参数,但仅以秒为单位:

代码语言:javascript
运行
复制
> (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
票数 2
EN

Stack Overflow用户

发布于 2019-09-13 21:39:13

使用as.POSIXct()

代码语言:javascript
运行
复制
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‘。

票数 1
EN

Stack Overflow用户

发布于 2019-09-13 21:37:45

我会查看anytime包。它几乎在所有的时间都是有效的。

代码语言:javascript
运行
复制
library(anytime)

order.time <- anytime(order.time)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57924395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档