【问题标题】:lubridate - get hours and minutes from decimal hourslubridate - 从十进制小时中获取小时和分钟
【发布时间】: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:51245: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 很有帮助。

标签: r datetime time lubridate


【解决方案1】:

如果真的只有 H:M:S 格式给你带来麻烦,试试

library(hms)
hms(hours=245.85)

产生245:51:00

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多