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"