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 :

alternative à merge()


Sujet :

R

  1. #1
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut alternative à merge()
    salut à tous,

    pour fusionner par exemple deux tableaux avec une clef, on peut utiliser la fonction merge(),
    ma question est maintenant de savoir s'il y a une fonction qui comme merge() permet de fusionner 4 tableaux ou plus selon une clef?
    merci d'avance

  2. #2
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 189
    Points
    1 189
    Billets dans le blog
    2
    Par défaut
    Peux tu préciser ta pensée.

    En SQL, on fusionne toujours deux tables avec une même clef.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Points : 62
    Points
    62
    Par défaut
    Si ta clé est identique, tu dois pouvoir utiliser la fonction merge en récursif.

    Cordialement.

    Hadrien

  4. #4
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par Hadrien35 Voir le message
    Si ta clé est identique, tu dois pouvoir utiliser la fonction merge en récursif.

    Cordialement.

    Hadrien
    Pour deux tableaux ,le problème ne se pose pas, ni d’ailleurs pour 10 tableaux si on veut le faire d'une manière récursive.
    Dans mon cas je cherche une fonction si elle existe qui permet d’éviter la récursivité.

    Citation Envoyé par dev_ggy Voir le message
    Peux tu préciser ta penser.

    En SQL, on fusionne toujours deux tables avec une même clef.
    Peut-être ma pensée n'est pas claire mais je crois que ma question l'est,
    sinon je parle de R (puisqu'on est dans le forum R) et pas de SQL

    merci pour vos réponses

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Points : 62
    Points
    62
    Par défaut
    Euh... oui, ma solution n'est pas possible?
    Si c'est le cas je m'en excuse...

    Si tu as plusieurs clés, en imputant à chaque tableau ces clés,
    tu dois pouvoir merger un à un les 4 tableaux en un seul.

    Et si non, et bien non, je n'ai pas de fonction, mais faire plusieurs merge() a toujours fonctionné chez moi (même si le temps de calcul s'allonge...)

    Cordialement.

    Hadrien

  6. #6
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    je suis d’accord avec toi, et j'ai la même clef, mais tout simplement je pensais pouvoir éviter la récursivité

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Points : 62
    Points
    62
    Par défaut
    C'est dingue mais avant aujourd'hui je n'avais même pas cherché à l'éviter...
    Du coup j'ai trouvé ça:
    http://www.r-bloggers.com/merging-mu...ne-data-frame/
    Qui a l'air de merger des tableaux déjà enregistrés sous forme csv (ou autre je pense)

    Reste à savoir si ça fonctionne ou si il existe une autre fonction pour merger des tableaux objets...

  8. #8
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Bonjour,

    Pour info, seule la dernière ligne est nécessaire, tout le reste n'ayant que pour objet de créer une liste de data.frames :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    datalist <- list(df1, df2, df3,...)
     
    Reduce(function(x,y) {merge(x,y, by="id")}, datalist)
    J'ai également ajouté un argument "by" à la fonction merge, pour éviter d'avoir un résultat vide si d'autres colonnes de mêmes noms sont trouvées dans différentes data.frames.
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  9. #9
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Points : 254
    Points
    254
    Par défaut
    pittipoisson
    c'est magnifique !!!

    Sinon une question si c'est pas trop en demander:
    par exmple, quant on utilide merge avec une clef, on obtient les numeros des lignes comme rownames.

    comment faire si on veut éviter ceci et utiliser comme rownames une des colonnes de mon fichier, parce que si j'enregistre le fichier sur le disque et que je veux le recharger par une commande du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     data <- read.csv2 ("fic.csv", row.names=2)
    les numéros des lignes ne disparaissent pas mais prennent tout simplement pour place la 2e colonnes

    merci

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

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Alternative plus rapide au "merge by" et PROC SORT
    Par Misspatate dans le forum SAS Base
    Réponses: 39
    Dernier message: 01/08/2011, 18h45
  3. Alternative au dbms_output ?
    Par dam1311 dans le forum Oracle
    Réponses: 10
    Dernier message: 24/11/2004, 08h11
  4. Alternative(s) a CVS
    Par MrSimon dans le forum SCM
    Réponses: 3
    Dernier message: 06/03/2004, 11h37
  5. [FORMATION] Formations par alternance
    Par chobol dans le forum Etudes
    Réponses: 10
    Dernier message: 20/02/2004, 11h28

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