Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Converter horas decimais para h:m:s em um dataframe R

Olá pessoal, tudo bem?

Possuo um dataframe no RStudio com muitas colunas no formato hora decimal (ex: 11.2666667), porém não consigo converter os dados para o formato "duração" (ex: 11:16:00).

Já estou a dias procurando uma solução sem encontrar respostas, vocês podem me ajudar?

Também vou precisar fazer alguns cálculos com estes diversos tempos que possuo (como percentuais, somas, etc) o formato "hh:mm:ss" é o melhor formato?

2 respostas
solução!

Olá Luiz, tudo bem? Espero que sim!

Desculpe pela demora em retornar.

Você pode utilizar a biblioteca chron para realizar a conversão usando a função times(). Ela aceita operações matemáticas que poderiam ser realizadas com os próprios números, então não terá problemas com o formato.

Por padrão a função converte o valor para dias, portanto caso queira trabalhar com horas, precisa dividir por 24 horas.

Exemplo:

install.packages('chron')
library(chron)

dados <- data.frame(c(11.2666667,13.1422,1.666,4.55),c(4,5,6,7))
colnames(dados) <- c('primeira_coluna', 'segunda_coluna')

times(dados$primeira_coluna/24)

Retorna como resultado 11:16:00 13:08:32 01:39:58 04:33:00

Podemos somar os dados das colunas, como no código:

times(dados$primeira_coluna/24) + times(dados$segunda_coluna/24)

Retornando o resultado 15:16:00 18:08:32 07:39:58 11:33:00

Você pode multiplicar por números e realizar somas entre os formatos de hora sem problemas.

Espero que tenha tirado sua dúvida.

Estou à disposição.

Muito obrigado pela ajuda João!

Eu havia encontrado uma outra solução porém mais complexa e menos útil do que a sua.

Com certeza a função que vc utiliza facilita e me ajuda muuuito mais.

Super obrigado!!! Bons estudos para você :

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software