Как добавить минуты ко времени в R - PullRequest
1 голос
/ 22 февраля 2020

У меня есть фрейм данных со столбцами времени (например, 10.24) и минут (например, 31).

Я хочу добавить эти два столбца. Результирующий столбец будет 10,24 + 31 (мин) = 10,55. Я пытался с , но это дает неправильные времена.

dput(stack_data)
structure(list(time = c("10:24", "10:40"), timeInMin = c(31L, 
23L)), row.names = c(19L, 23L), class = "data.frame")

Я пробовал так:

stack_data$time <- (hm(stack_data$time))
stack_data$timeInMin <- hms((stack_data$time) + (stack_data$timeInMin))

Вывод:

time         timeInMin
10H 24M 0S    10:24:31
10H 40M 0S    10:40:23

Я получаю неправильный ответ. Можете ли вы предложить мне, как это сделать? Спасибо.

1 Ответ

2 голосов
/ 22 февраля 2020

Мы можем использовать as.ITime из data.table

library(data.table)
stack_data$time <- as.ITime(paste0(stack_data$time, ":00"))
stack_data$timeInMin <- stack_data$time +
                    as.ITime(paste0("00:", stack_data$timeInMin, ":00"))
stack_data$timeInMin
#[1] "10:55:00" "11:03:00"

Или используя hm

library(lubridate)
hm(stack_data$time)  + minutes(stack_data$timeInMin)
#[1] "10H 55M 0S" "10H 63M 0S"
...