Discussion: Problème de doublons

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2017
    Messages : 6
    Points : 7
    Points
    7

    Par défaut Problème de doublons

    Bonjour à tous,
    Je me tourne vers vous pour un problème de doublons que je rencontre.
    J'ai un tableau avec 4 variables :
    - ID
    - Date envoi
    - Date réception
    - Différence entre date réception et date envoi

    Je souhaiterai supprimer la ligne avec la date d'envoi la plus ancienne lorsque j'ai deux dates de réceptions identiques. Ou alors dit autrement, je souhaiterai supprimer la différence la plus grande.
    Et ce par ID et par date d'envoi.

    Je sais pas si j'ai été clair, mais je l'espère...


    Bonne journée à tous et merci par avance pour votre temps !

  2. #2
    Membre averti
    Inscrit en
    novembre 2009
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 153
    Points : 329
    Points
    329

    Par défaut Sélectionner la dernière observation par groupe

    Bonjour,

    Voici un programme pour sélectionner la dernière observation par groupe (Merci Robert A. Muenchen ; je recommande ses livres R for SAS and SPSS users et R for Stata users aux utilisateurs de ces langages).

    Je joins un fichier csv pour tester le programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    > df <- read.csv("D:/temp/test.txt")
    > df
      ID date_envoi date_reception
    1  1 15/01/2017     01/02/2017
    2  1 01/01/2017     01/02/2017
    3  2 01/01/2017     01/02/2017
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    > df$date_envoi <- as.Date(df$date_envoi, format = "%d/%m/%Y")
    > df$date_reception <- as.Date(df$date_reception, format = "%d/%m/%Y")
    > df$delai = df$date_reception-df$date_envoi
    > df
      ID date_envoi date_reception   delai
    1  1 2017-01-15     2017-02-01 17 days
    2  1 2017-01-01     2017-02-01 31 days
    3  2 2017-01-01     2017-02-01 31 days
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    > df <- df[order(df$ID, df$date_reception, df$date_envoi),]
    > df
      ID date_envoi date_reception   delai
    2  1 2017-01-01     2017-02-01 31 days
    1  1 2017-01-15     2017-02-01 17 days
    3  2 2017-01-01     2017-02-01 31 days
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    > myBys <- data.frame(df$ID, df$date_reception)
    > myBys
      df.ID df.date_reception
    1     1        2017-02-01
    2     1        2017-02-01
    3     2        2017-02-01
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > mylastList <- by(df, myBys, tail, n=1)
    > mylastList
    df.ID: 1
    df.date_reception: 2017-02-01
      ID date_envoi date_reception   delai
    1  1 2017-01-15     2017-02-01 17 days
    ------------------------------------------------------------ 
    df.ID: 2
    df.date_reception: 2017-02-01
      ID date_envoi date_reception   delai
    3  2 2017-01-01     2017-02-01 31 days
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > df <- do.call(rbind, mylastList)
    > df
      ID date_envoi date_reception   delai
    1  1 2017-01-15     2017-02-01 17 days
    3  2 2017-01-01     2017-02-01 31 days
    Cordialement,
    Fichiers attachés Fichiers attachés

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2017
    Messages : 6
    Points : 7
    Points
    7

    Par défaut

    Bonjour à tous, bonjour mgdondon,

    Merci beaucoup pour votre réponse ainsi que pour votre temps, votre aide résout un partie de mon problème !

    Cependant, n'ayant pas sur que nous nous soyons compris je souhaiterai vous reposer ma problématique à l'aide d'un fichier texte que je viens de construire.
    J'espère que ce fichier pourra vous aidez à y voir plus claire dans mon idée, car j'avoue à avoir beaucoup à expliciter à l'écrit mon problème...

    Bonne journée, et dores et déjà merci pour votre aide !

    test.txt

  4. #4
    Membre averti
    Inscrit en
    novembre 2009
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 153
    Points : 329
    Points
    329

    Par défaut Sélectionner la dernière observation par groupe

    Bonjour,

    Dans votre 1er message vous dites :

    Je souhaiterai supprimer la ligne avec la date d'envoi la plus ancienne lorsque j'ai deux dates de réceptions identiques.
    Dans votre fichier texte, c'est en effet l'inverse : vous souhaitez supprimer la ligne avec la date de réception la plus ancienne lorsque vous avez deux dates d'envoi identiques.

    Il faut donc trier votre dataframe par ID, date_envoi, date_reception et indiquer que les groupes sont définis par ID, date d'envoi : myBys <- data.frame(df$ID, df$date_envoi).

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/08/2006, 23h35
  2. [WD10] Problème de doublons
    Par routmout dans le forum WinDev
    Réponses: 5
    Dernier message: 07/06/2006, 18h36
  3. Problème de doublons
    Par RapidJul dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/05/2006, 16h08
  4. Réponses: 7
    Dernier message: 30/01/2006, 21h36
  5. [access] Problème de doublons
    Par nesbla dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/05/2005, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo