【问题标题】:How can I convert numeric to hours and minutes in R?如何在 R 中将数字转换为小时和分钟?
【发布时间】:2016-06-20 12:27:48
【问题描述】:

我有一个变量,形式为在活动中花费的分钟数。我想通过考虑数字但不产生秒数将这个数字转换为小时和分钟。这是一个例子:

minutes<-c(81.4398, 50.9903,107.5511,433.3051,10.1234)
minutes

我想要时钟格式的结果:

hrsmins<- c(1:21,0:51,1:48,7:13,0:10) 

请注意,结果显示当天的时钟时间,而是显示活动中的小时和分钟。我有一个非常大的数据集(数百万集)。因此,如果有人可以提供一种有效的方式来进行这种转换,我将不胜感激。

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以试试chron

    library(chron)
    substr(times((minutes%/%60 +  minutes%%60 /60)/24), 1, 5)
    #[1] "01:21" "00:50" "01:47" "07:13" "00:10"
    

    也可以

    sub(":\\d{2}", "", times((minutes%/%60 +  minutes%%60 /3600)/24))
    #[1] "01:21" "00:51" "01:48" "07:13" "00:10"
    

    【讨论】:

    • 非常感谢。后者正是我所需要的,因为它比前者更准确(例如 107.5511 min= 1:48 而不是 1.47)
    • 除非我遗漏了什么,否则sprintf("%.02d:%.02d", minutes %/% 60, round(minutes %% 60)) 不应该就够了吗?
    • 所有建议的答案都不能正确处理 119.99。结果是“01:00”、“01:59”和“1:60”。预计:“02:00”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2015-07-20
    相关资源
    最近更新 更多