lubridate - 从十进制小时中获取小时和分钟
Posted
技术标签:
【中文标题】lubridate - 从十进制小时中获取小时和分钟【英文标题】:lubridate - get hours and minutes from decimal hours 【发布时间】:2022-01-17 16:34:40 【问题描述】:245.85
格式的十进制小时数等于 [hh]:mm:ss
格式的 245:51:00
。
我想将小数小时转换为 hh:mm 格式,但我该怎么做呢?
渲染 245.85 的原始计算是:
library(lubridate)
time_length(hm("7 27")*33,unit = "hours")
我想要的是245:51
或245:51:00
如果我使用 as.period 我也会得到几天 - 就像在:
as.period(dhours(time_length(hm("7 27")*33,"hours")))
[1] "10d 5H 51M 0S"
对于背景 - 我的目标是将小时和分钟(例如 7:27)乘以任意整数(例如 33)并以 hh:mm 格式返回结果 - 避免天数(如上面的 as.period
示例) .假设一件工作需要 7 小时 27 分钟,而我们每年给我 33 件这样的工作,那么我应该需要这么多工作时间(和分钟)。
【问题讨论】:
您不能自己插入一个自定义函数,将十进制小时转换为小时+分钟吗?使用这个库的动机是什么?paste0((245.85 %/% 1),":", round((245.85 %% 1)* 60),":00")
您希望输出为时间格式吗?如果你只是对语法感兴趣,你可以这样做: x
对不起,我在编程方面不是很有经验,有人告诉我——人们可能以前解决过这些问题
非常感谢,这些 cmets 很有帮助。
【参考方案1】:
如果真的只有 H:M:S 格式给你带来麻烦,试试
library(hms)
hms(hours=245.85)
产生245:51:00
【讨论】:
以上是关于lubridate - 从十进制小时中获取小时和分钟的主要内容,如果未能解决你的问题,请参考以下文章