Jointure avec plus de deux tables - R [ Résolu ]

Aller en bas

Jointure avec plus de deux tables  - R [ Résolu ] Empty Jointure avec plus de deux tables - R [ Résolu ]

Message par Gueguett le Mar 21 Fév 2012 - 11:38

Bonjour,

J'ai parcouru le forum et je n'ai pas trouvé de sujet correspondant, donc j'espère ne pas faire de doublons ..
J'ai differentes tables qui comprennent le chiffre d'affaire de mes clients, j'ai une table par mois (CA janvier 2011, CA février 2011 etc) sur plusieurs années avec pour chaque table un identifiant client.

Et je souhaiterai faire une jointure pour avoir une seule table avec les CA de tous les mois pour chaque client ayant un CA dans chaque mois. J'ai réussi à le faire en utilisant la fonction merge mais cela me fait une jointure pour seulement deux tables, j'aimerai donc savoir s'il existe un moyen de faire la jointure de toutes ces tables ?
De plus j'ai vu qu'il existait une fonction merge_all dans le package reshape mais sans résultat ...

Merci,
Gaëtan


Dernière édition par Gueguett le Ven 24 Fév 2012 - 8:27, édité 1 fois

Gueguett

Nombre de messages : 7
Age : 29
Localisation : Rennes
Date d'inscription : 21/02/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Jointure avec plus de deux tables  - R [ Résolu ] Empty Re: Jointure avec plus de deux tables - R [ Résolu ]

Message par Gueguett le Ven 24 Fév 2012 - 8:26

Après plusieurs tentatives j'ai fini par trouver, je poste donc la solution si cela peut servir à d'autres utlisateurs.
Il s'agit bien d'une fonction du package 'reshape' mais de la fonction 'merge_recurse'. Cependant c'est une jointure totale, voici donc le code modifié de cette fonction pour une jointure stricte (ou j'ai juste remplacé all=TRUE par all=FALSE).

Code:
jointure<-function (dfs, ...)
{
    if (length(dfs) == 2) {
        merge(dfs[[1]], dfs[[2]], all = FALSE, sort = FALSE, ...)
    }
    else {
        merge(dfs[[1]], Recall(dfs[-1]), all = FALSE, sort = FALSE,
            ...)
    }
}



Code:
data<- jointure ( list ("DF1","DF2","DF3", ...),by = "id_client" )



Gaëtan,

Gueguett

Nombre de messages : 7
Age : 29
Localisation : Rennes
Date d'inscription : 21/02/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum