【问题标题】:How do I convert a whole column in a dataframe object from time to number of hours in R如何将数据框对象中的整列从时间转换为 R 中的小时数
【发布时间】:2021-10-29 11:15:05
【问题描述】:

我是 R 的初学者,所以请以最简单的方式回答。 我有一个数据框(名为“fintab”),其中包含一个带有时间格式(00:00:30)的值的列。我想将整列数据转换为小时的数值(0.008)。我试过这段代码:

>install.packages("lubridate") 
>library("lubridate")
>hodiny <- hour(fintab$`hour:min:sec`) + minute(fintab$`hour:min:sec`) / 60 + second(fintab$`hour:min:sec`) / 3600

但我收到此错误:

Error in as.POSIXlt.character(x, tz = tz(x)) : 
  character string is not in a standard unambiguous format

有没有办法解决这个错误?

【问题讨论】:

  • 请显示str(fintab)`
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: r dataframe time


【解决方案1】:

您可以使用hms 创建一个period 对象,将其转换为numeric 以获得秒数,然后将结果除以3600 以获得十进制小时数:

library(lubridate)

fintab <- '00:00:30'
as.numeric(lubridate::hms(fintab))/3600
[1] 0.008333333

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 2021-09-27
  • 2017-08-26
  • 1970-01-01
相关资源
最近更新 更多