【问题标题】:Formatting numeric values to time in R在R中将数值格式化为时间
【发布时间】:2021-11-14 11:50:42
【问题描述】:

我想将数据框中的数字睡眠分钟数格式化为 R 中的时间。例如,数据框如下所示:

TotalMinutesAsleep 327

sleep.day.1$TotalMinutesAsleep <- hms(sleep.day.1$TotalMinutesAsleep)                         

我需要一个快速简便的解决方案。

谢谢,

【问题讨论】:

  • 再次感谢,我这样做了,并创建了一个新的数据框。现在,我正在努力绘制这些数据。我的到处都是,大多数教程都超过了日期,而不是小时和分钟。

标签: r dataframe time lubridate chron


【解决方案1】:

如果这些值以分钟为单位,则转换为秒并使用seconds_to_period

library(lubridate)
period1 <- seconds_to_period(sleep.day.1$TotalMinutesAsleep * 60)

然后,我们可以用它格式化

sprintf('%02d:%02d:%02d', period1@hour, period1@minute, second(period1))

【讨论】:

  • 啊,图书馆(hms),我会试试的。谢谢!
  • sprintf?我会用,有链接解释一下吗?
  • @Baccara seconds_to_period 返回一个period 类对象,而sprintf 只是用@ 对提取的周期元素进行格式化
  • 我创建了一个新的数据框,所有内容都已格式化。我正在努力绘制它。有没有帮助的包?
  • @Baccara 你可以发布一个新问题。如果当前解决方案有效,请考虑接受解决方案
【解决方案2】:

我们可以使用tidyverse 的一部分hms:用于存储时间值的简单类

library(hms)
hms(sleep.day.1$TotalMinutesAsleep*60)

输出:

05:27:00

【讨论】:

    猜你喜欢
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    相关资源
    最近更新 更多