IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Problème nombre de lignes avec merge de deux tableaux


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    ingénieur d'études
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut Problème nombre de lignes avec merge de deux tableaux
    Bonjour,

    J'ai mergé deux tableaux sous R. Soit A le tableau avec 4506 lignes (=nombre individus) et le tableau B avec 4745 lignes (=inds). J'ai donc mergé les deux tableaux by IID (colonne commune).
    Je n'ai eu aucun message d'erreur lors de la merge des tableaux mais cependant ma data finale contient 4538 lignes... Auriez-vous une idée de l'erreur?

    Merci de votre aide

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Problème nombre de lignes avec merge de deux tableaux
    Bonjour,

    Par défaut, la fonction merge() conserve seulement les individus communs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > df1 <- data.frame(idd=c(1,1,2,3,4,5),V1=c(1,1,1,1,1,1))
    > df2 <- data.frame(idd=c(1,3,4,5,6),V2=c(1,1,1,1,1))
    > dftot<-merge(df1,df2,by="idd")
    > dftot
      idd V1 V2
    1   1  1  1
    2   1  1  1
    3   3  1  1
    4   4  1  1
    5   5  1  1
    Il faut utiliser l'option all=TRUE pour garder l'ensemble des individus des deux bases :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > dftot<-merge(df1,df2,by="idd",all=TRUE)
    > dftot
      idd V1 V2
    1   1  1  1
    2   1  1  1
    3   2  1 NA
    4   3  1  1
    5   4  1  1
    6   5  1  1
    7   6 NA  1
    Pour plus d'options sur la fonction merge(), regardez l'aide :
    Vous voyez aussi dans l'exemple qu'on a deux lignes pour l'individu1 dans df1, une seule dans df2 et qu'on obtient deux lignes dans dftot, ce qui explique que vous ayez davantage de lignes dans le tableau total que dans le plus petit tableau.

    Cordialement,

  3. #3
    Membre à l'essai
    Femme Profil pro
    ingénieur d'études
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    Bonjour,

    Tout d'abord merci de votre réponse.
    Mais "all=TRUE" me fait garder les 4745 individus dans ma table mergée.

    Justement je savais que l'option "merge" par défaut ne garde que les individus en communs entre mes deux tables. C'est bien ce que je veux, ne garder que les 4506 individus communs aux deux tables.
    Et pourtant j'obtiens des individus en plus... Mes 4506 individus sont obtenus après QC et c'est uniquement leurs informations qui m'intéressent.

    Une autre idée de mon souci?

  4. #4
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Problème nombre de lignes avec merge de deux tableaux
    Bonjour,

    Avez-vous vérifié que vos tableaux ne comportaient pas des doublons ? Dans mon premier exemple, je n'utilise pas l'option all=TRUE. Il y a 4 individus communs mais on obtient 5 observations parce que l'individu 1 a deux observations.

    Cordialement,

  5. #5
    Membre à l'essai
    Femme Profil pro
    ingénieur d'études
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    Bonjour mgdondon,

    Après avoir regardé plus en détails mon fichier initial, mes lignes en plus correspondaient bien à des doublons !

    Merci

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

Discussions similaires

  1. Problème indice de ligne avec fonction Large
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 22/07/2011, 14h49
  2. [XL-2007] Comment connaître le nombre de lignes avec une valeur ?
    Par EFFLYINGJOKER dans le forum Excel
    Réponses: 4
    Dernier message: 13/05/2011, 15h31
  3. Problème mise en ligne avec dreamweaver
    Par WeL4ReaL dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 03/10/2009, 12h28
  4. [AC-2000] Suppression ligne avec conditions sur deux tables
    Par Loufink dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 09/07/2009, 11h38
  5. Problème retour à la ligne avec textarea
    Par finalfx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/05/2006, 18h59

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