R: Превращение строки h:m:s в соответствующий объект времени

Скажем, у меня есть столбец в моем фрейме данных, содержащий только объекты строк:

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

так далее

Я хочу просто преобразовать эти строки в соответствующий объект типа времени (в библиотеке chron), чтобы я мог делать такие вещи, как вычисление среднего времени и т. Д. Как я могу это сделать?

Моя попытка просто сделать раз (столбец данных), но я получаю десятичное значение.

2 ответа

Просто для упрощения, я буду использовать 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"
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"

Другие вопросы по тегам