如何将数据框对象中的整列不时转换为 R 中的小时数

How do I convert a whole column in a dataframe object from time to number of hours in R

我是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

有解决这个错误的办法吗?

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

library(lubridate)

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