Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Jointure avec plus de deux tables - R [ Résolu ]
Page 1 sur 1
Jointure avec plus de deux tables - R [ Résolu ]
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
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 : 34
Localisation : Rennes
Date d'inscription : 21/02/2012
Re: Jointure avec plus de deux tables - R [ Résolu ]
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).
Gaëtan,
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 : 34
Localisation : Rennes
Date d'inscription : 21/02/2012
Sujets similaires
» [résolu] problème avec la fonction merge fusionner 3 tables
» comparer deux tables de contingence de tailles différentes ?
» [Résolu] Problème avec boxplot
» Problème avec lsmeans [RÉSOLU]
» [Résolu] Evaluer l'équivalence entre deux variables
» comparer deux tables de contingence de tailles différentes ?
» [Résolu] Problème avec boxplot
» Problème avec lsmeans [RÉSOLU]
» [Résolu] Evaluer l'équivalence entre deux variables
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum