Opération mathématique sur les heures

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Jonathan Costa
Messages : 12
Enregistré le : 27 Nov 2017, 16:15

Opération mathématique sur les heures

Messagepar Jonathan Costa » 15 Avr 2021, 09:02

Bonjour à tous,

Après avoir cherché dans le package lubridate ainsi que la fonction as.POSIXct. Je n'ai pas trouvé la solution à mon problème d'opération sur les heures.

J'aimerai transformer mes heures en heures décimales dans le but d'ajouter 24 à chaque heure décimale inférieure à 10.

Voici un extrait de mon data frame :

Code : Tout sélectionner

library(tidyr)
library(dplyr)
library(lubridate)

df <- data.frame(Temps = format(seq(ymd_hm("2020-10-08 23:00"),
                              ymd_hm("2020-10-09 01:00"),
                              by = "15 min"),"%Y-%m-%Y %H:%M")) %>%   

      separate(col = "Temps",into = c("Date", "Heure"), sep = " ", extra = "merge")


et le résultat que j'aimerai obtenir :

Code : Tout sélectionner


Heure_deci <- c(23.00,23.25,23.50,23.75,0.00,0.25,0.50,0.75,1.00)
Heure_deci24 <- c(23,23.25,23.5,23.75,24,24.25,24.5,24.75,25)

cbind(df,Heure_deci,Heure_deci24)



Un avis?

D'avance merci pour vos réponses.

Cordialement,
Jonathan

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Opération mathématique sur les heures

Messagepar Pierre-Yves Berrard » 15 Avr 2021, 09:18

Bonjour,

En bricolant un peu à la main :

Code : Tout sélectionner

modif_heure <- function(hm) {
  
  h 
<- as.integer(substr(hm, 1, 2))
  h <- ifelse(< 10, h + 24, h)
  
  m 
<- as.integer(substr(hm, 4, 5))
  m <- m / 60
  
  h 
+ m
  
}

Code : Tout sélectionner

df %>% mutate(resultat = modif_heure(Heure))
#>           Date Heure resultat
#> 1 2020-10-2020 23:00    23.00
#> 2 2020-10-2020 23:15    23.25
#> 3 2020-10-2020 23:30    23.50
#> 4 2020-10-2020 23:45    23.75
#> 5 2020-10-2020 00:00    24.00
#> 6 2020-10-2020 00:15    24.25
#> 7 2020-10-2020 00:30    24.50
#> 8 2020-10-2020 00:45    24.75
#> 9 2020-10-2020 01:00    25.00     
PY

Jonathan Costa
Messages : 12
Enregistré le : 27 Nov 2017, 16:15

Re: Opération mathématique sur les heures

Messagepar Jonathan Costa » 15 Avr 2021, 09:59

Super merci Pierre Yves!


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron