durations <- "01:01:01" #1 hour 1 min and 1 sec
Как я могу использовать основание R, чтобы получить числовое представление секунд (или минут) с 10 основанием, которому это соответствует (это будет 3661 секунда)?. Время (и даты) в R всегда причиняет мне боль. Есть много похожих вопросов SO (например, здесь и здесь), но я все еще не понял это правильно. Одна попытка была:
as.numeric(format(strptime('00:01:01', format='%H:%M:%S'), '%S'))





После преобразования в POSIXlt извлеките hour, min и sec и выполните арифметические операции.
v1 <- strptime(durations, format='%H:%M:%S')
v1$hour * 3600 + v1$min * 60 + v1$sec
#[1] 3661
Или же
c(unlist(unclass(v1)[c("hour", "min", "sec")]) %*% c(3600, 60, 1))
Быстро и грязно:
as.numeric(strsplit(durations, ":")[[1]]) %*% c(3600, 60, 1)
у этого есть хороший ответ stackoverflow.com/questions/10835908/…