R 如何将以H:M:S为单位的时间转换为十进制分钟?

R 如何将以H:M:S为单位的时间转换为十进制分钟?,r,time,R,Time,我有一个表,其中包含以下一组数字: Time in Hours Used 1:05:34 1:04:45 1:12:04 34:17 43:35 。。。进行55次观察 如何创建以小时为单位的时间以分钟为单位的新列。我知道我可以把它乘以24*60,但出于某种原因,当我这么做的时候,它说因子不能乘以 我尝试过其他程序,比如chronos,但它们要求我输入每一个值,并为所有55个观测值创建一个值向量。我怎么能把这些值乘以24*60,在一分钟内得到它们呢 我们可以使用gue

我有一个表,其中包含以下一组数字:

Time in Hours Used
  1:05:34
  1:04:45
  1:12:04
    34:17
    43:35
。。。进行55次观察

如何创建以小时为单位的时间以分钟为单位的新列。我知道我可以把它乘以24*60,但出于某种原因,当我这么做的时候,它说因子不能乘以


我尝试过其他程序,比如
chronos
,但它们要求我输入每一个值,并为所有55个观测值创建一个值向量。我怎么能把这些值乘以24*60,在一分钟内得到它们呢

我们可以使用
guess\u formats
from
lubridate
获取数据集列中的多种格式,使用
parse\u date\u time
中的格式转换为日期时间类。我们使用
格式
提取时间部分(
%H:%M:%S
),使用
时间
时间
转换为
时间
类,然后在转换为
数值
后乘以24*60

library(chron)
library(lubridate)
as.numeric(times(format(parse_date_time(df1[,1],guess_formats(df1[,1], 
                  c('hms', 'ms'))), '%H:%M:%S')))*24*60
数据
df1如果它是
H:M:S
格式,为什么要乘以24*60?把小时乘以60,然后加上分钟?你没有一天的时间,是吗?正如我上面提到的,为什么要乘以24*60?它将天转换为分钟,而不是小时转换为分钟。@LateMail我不知道,只是根据OP所描述的内容对其进行编码。@LateMail
times
H:M:S
表示为一天的一小部分(即24小时)。因此,
as.numeric(times(“12:00:00”)
给出了
0.5
0.5*24
以小时为单位给出
12
。而
12*60
在几分钟内给出
720
df1 <- structure(list(timeinhours = structure(c(2L, 1L, 3L, 4L, 5L),
.Label = c("1:04:45", "1:05:34", "1:12:04", "34:17", "43:35"),
class = "factor")), .Names = "timeinhours", row.names = c(NA, -5L),
class = "data.frame")