group_by and summarise

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

Mokhtaria Benaouali
Messages : 15
Enregistré le : 18 Fév 2019, 12:21

group_by and summarise

Messagepar Mokhtaria Benaouali » 28 Mai 2019, 08:29

Bonjour,
j'ai un data frame avec 5 colonnes

Code : Tout sélectionner

df <- data.frame(
  id_personne = c(1, 1, 1, 2, 2,3),
  id_dossier = c(11, 11, 12, 21, 22,33),
  Mode_entree = c(1, 1, 8, 5, 1, 4),
  date.entree = c("12/12/2018", "12/12/2018", "25/12/2018", "12/04/2018", "05/06/2018", "05/06/2008"),
  date.sortie = c("25/12/2018", "25/12/2018", "30/12/2018", "30/04/2018", "16/06/2018", "05/01/2018")
)

je voulais la grouper par id_personne et pour chaque id_personne j'ai besoin de sa date entrée minimale
au premier temps ça marche pour moi pour tous les id_personne après elle m'a affiche qu' une seule ligne
le code que je le fais:

Code : Tout sélectionner

date_min <- df %>%  mutate(
  date.entree = as.Date(date.entree, format = "%d/%m/%Y"),
  date.sortie = as.Date(date.sortie, format = "%d/%m/%Y")
) %>% group_by(id_personne) %>%
summarise(date_entre_minimal = min(date.entree))


data-frame que j'en besoin au final

Code : Tout sélectionner

df_final <- data.frame(
  id_personne = c(1, 2,3),
  id_dossier = c(11,21,33),
  Mode_entree = c(1, 5, 4),
  date.entree = c("12/12/2018", "12/04/2018", "05/06/2008"),
  date.sortie = c("25/12/2018", "30/04/2018",  "05/01/2018")
)


merci
Cordialement
MimiaBenna

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: group_by and summarise

Messagepar Serge Rapenne » 28 Mai 2019, 09:23

Bonjour,

tu peux faire comme çà :

Code : Tout sélectionner

df <- data.frame(
  id_personne = c(1, 1, 1, 2, 2,3),
  id_dossier = c(11, 11, 12, 21, 22,33),
  Mode_entree = c(1, 1, 8, 5, 1, 4),
  date.entree = c("12/12/2018", "12/12/2018", "25/12/2018", "12/04/2018", "05/06/2018", "05/06/2008"),
  date.sortie = c("25/12/2018", "25/12/2018", "30/12/2018", "30/04/2018", "16/06/2018", "05/01/2018")
)

df %>% mutate(
  date.entree = as.Date(as.character(date.entree), format = "%d/%m/%Y"),
  date.sortie = as.Date(as.character(date.sortie), format = "%d/%m/%Y")) %>%
  group_by(id_personne) %>%
  filter(date.entree==min(date.entree)) %>%
  unique() %>%
  mutate(date.entree=format(date.entree,"%d/%m/%Y"),date.sortie=format(date.sortie,"%d/%m/%Y"))
# A tibble: 3 x 5
# Groups:   id_personne [3]
  id_personne id_dossier Mode_entree date.entree date.sortie
        <dbl>      <dbl>       <dbl> <chr>       <chr>     
1           1         11           1 12/12/2018  25/12/2018
2           2         21           5 12/04/2018  30/04/2018
3           3         33           4 05/06/2008  05/01/2018


Serge

Mokhtaria Benaouali
Messages : 15
Enregistré le : 18 Fév 2019, 12:21

Re: group_by and summarise

Messagepar Mokhtaria Benaouali » 28 Mai 2019, 09:38

Merci serge pour ta réponse !
MimiaBenna


Retourner vers « Questions en cours »

Qui est en ligne

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