如何将H:M:S中的时间转换为小数分钟?

时间:2015-10-30 06:16:41

标签: r time

我有一个包含以下数字的表:

Time in Hours Used
  1:05:34
  1:04:45
  1:12:04
    34:17
    43:35

...五十五次观察

如何创建新列,其中以小时为单位的时间列为分钟。我知道我可以将它乘以24 * 60,但出于某种原因,当我这样做时,它说因素不能成倍增加。

我尝试了其他程序,例如chronos,但是他们要求我输入每一个值并为所有55个观察值创建一个值向量。我怎样才能将这些值中的每一个乘以24 * 60来得到它们?

1 个答案:

答案 0 :(得分:1)

我们可以使用guess_formats中的lubridate来获取数据集列中的多种格式,并使用parse_date_time中的格式转换为日期时间类。我们使用%H:%M:%S提取时间部分(format),使用times中的times转换为chron类,然后在转换后乘以24 * 60到numeric

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 <- 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")