R:将一串h:m:s转换为相应的时间对象

时间:2016-06-23 18:56:09

标签: r chron

假设我的数据框中有一列只包含字符串对象:

"00:20:10"
"02:12:10"

我想将这些字符串转换为相应的时间类型对象(在chron库中),所以我可以做一些事情,比如计算平均时间等。我该怎么做?

我的尝试只是做次数(数据列),但我得到一个小数值。

2 个答案:

答案 0 :(得分:1)

为了简化,我假设一个只有一列的data.frame。请注意,即使它显示为正确的时间格式,基础数据仍然是十进制值。

library("chron")

mydf <- data.frame(time = c("00:20:10", "02:12:10"), stringsAsFactors = FALSE)
mydf[] <- lapply(mydf,times)

mydf
      time
1 00:20:10
2 02:12:10

str(mydf)

'data.frame':   2 obs. of  1 variable:
  $ time:Class 'times'  atomic [1:2] 0.014 0.0918
.. ..- attr(*, "format")= chr "h:m:s"

答案 1 :(得分:0)

as.POSIXct('00:20:10', format='%H:%M:%S')

[1]“2016-06-23 00:20:10 EDT”

as.POSIXct('2:12:10', format='%H:%M:%S')

[1]“2016-06-23 02:12:10 EDT”

您还可以按

指定日期
as.POSIXct('06/23/2016 00:20:10', format='%m/%d/%Y %H:%M:%S')

[1]“2016-06-23 00:20:10 EDT”