如何将数据框对象中的整列不时转换为 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
我是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