Ajout d'occurrences dans un data frame

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

Ajout d'occurrences dans un data frame

Messagepar Jonathan Costa » 14 Avr 2021, 08:35

Bonjour à tous,

cela fait un bout de temps que je n'ai pas touché à R et je suis un peu rouillé niveau manipulation de données :)


Voici mon problème :

J'ai un tableau avec des occurrences pour chaque heure de la nuit et pour chaque date.

Code : Tout sélectionner

Heure <-  c("19:42", "19:43","19:45")
Date_nuit <-  c("08/10/2020","08/10/2020","09/10/2020")
Occurrence <- c(1,1,2)

d <- data.frame(Heure, Date_nuit,Occurrence)


J'aimerai ajouter toutes les heures (à la minute près) où il n'y a pas eu d'occurrences mais je ne vois pas exactement comment faire (boucle for?).

Le résultat final devrait ressembler à cela :

Code : Tout sélectionner

Heure_1 <-  c("19:42","19:42","19:43","19:43","19:44","19:44","19:45","19:45")
Date_nuit_1 <-  c("08/10/2020","09/10/2020","09/10/2020","08/10/2020","09/10/2020","08/10/2020","09/10/2020","08/10/2020")
Occurrence_1 <- c(1,0,0,1,0,0,2,0)

d_1 <- data.frame(Heure_1, Date_nuit_1,Occurrence_1)


Je vous remercie grandement pour votre aide.

Bien cordialement,
Jonathan

Michaël Delorme
Messages : 67
Enregistré le : 04 Avr 2016, 10:21

Re: Ajout d'occurrences dans un data frame

Messagepar Michaël Delorme » 14 Avr 2021, 09:29

Générer une série d'heures, joindre avec les données et compléter :

Code : Tout sélectionner

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

data.frame(Heure = format(seq(ymd_hm("2021-01-01 00:00"),
                              ymd_hm("2021-01-01 23:59"),
                              by = "1 min"),
                          "%H:%M")) %>%
  left_join(d, by = "Heure") %>%
  complete(Heure, Date_nuit, fill = list(Occurrence = 0)) %>%
  drop_na(Date_nuit)
 


Code : Tout sélectionner

# A tibble: 2,880 x 3
   Heure Date_nuit  Occurrence
   <chr> <chr>           <dbl>
 1 00:00 08/10/2020          0
 2 00:00 09/10/2020          0
 3 00:01 08/10/2020          0
 4 00:01 09/10/2020          0
 5 00:02 08/10/2020          0
 6 00:02 09/10/2020          0
 7 00:03 08/10/2020          0
 8 00:03 09/10/2020          0
 9 00:04 08/10/2020          0
10 00:04 09/10/2020          0
# ... with 2,870 more rows

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

Re: Ajout d'occurrences dans un data frame

Messagepar Jonathan Costa » 14 Avr 2021, 12:30

Super! Merci Mickael pour ta réponse.

Bien cordialement,
Jonathan


Retourner vers « Questions en cours »

Qui est en ligne

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