La question suivante a été posée sur la page interne de la communauté des utilisateurs JMP de P&G. Je transmets sur ce forum :
J'ai deux tables que je souhaite rejoindre en fonction des horodatages. Cependant, en raison de la source de données, ils n'ont pas les mêmes heures. La seule option dans JMP que je puisse trouver est une correspondance exacte. Existe-t-il une option dans JMP pour utiliser une jointure la plus proche, similaire au fonctionnement de la jointure pandas ou d'Excel Vlookup ?
La communauté des utilisateurs de P&G JMP a tenté de donner quelques réponses. Existe-t-il une meilleure solution que celle que nous avons essayé de recommander ?
Réponse 1:
Supprimer les deux tableaux dans Excel sous forme de feuilles séparées, ajouter une colonne vlookup à la feuille 1 faisant référence à la feuille 2, puis revenir à JMP pour la jointure ? Je n'ai pas vu de fonctionnalité de correspondance la plus proche dans JMP, mais je serais intéressé si elle existe...
Réponse n°2 :
Les définitions de la « jointure la plus proche » sont incohérentes. Ma mémoire de RECHERCHEV (à moins qu'elle ne soit modifiée) consiste à prendre le temps X de la table de données X et à le faire correspondre à l'heure Y la plus proche de la table de données Y telle que X<=Y (ou est-ce Y<=X), ce qui peut parfois être un écart très long, surtout si les données sont collectées à intervalles irréguliers dans le tableau de données X ou le tableau de données Y. La possibilité d'intervalles irréguliers peut vraiment compliquer des jointures comme celle-ci.
Malheureusement, il n'existe pas d'approche rapide dans JMP, mais vous pouvez essayer plusieurs choses.
Une approche que j'ai déjà essayée consiste à adapter une spline aux mesures critiques d'intérêt (avec variable X = temps), puis à enregistrer la formule de prédiction et à la transférer dans l'autre table. Si cela est fait correctement, cela interpole essentiellement les mesures critiques et les fait correspondre.
Une autre option consiste à effectuer une jointure complète (les horodatages ne correspondent pas), puis à créer une colonne Formule pour vérifier si l'heure dans la table de données X est manquante ; si c'est le cas, utilisez le temps à partir du tableau de données Y, sinon utilisez le temps à partir du tableau de données X. Triez ensuite sur cette nouvelle colonne Temps. Créez ensuite des formules pour chaque mesure critique d’intérêt. Dans ces formules, vérifiez si la mesure critique est manquante ou non. S'il ne manque pas, apportez la mesure critique, et sinon, utilisez la fonction Lag (groupe de fonctions Row dans l'éditeur de formule) par rapport au nom que vous donnez à cette nouvelle colonne de formule pour faire descendre l'observation d'une ligne vers le haut.
Réponse n°3 :
Dans de nombreux cas, vous pouvez créer une correspondance la plus proche en regroupant les deux horodatages de la même manière (par exemple, en regroupant les données par secondes, 10 secondes, 1 minute...) avant de les rejoindre. Cela fonctionne très bien tant que les horodatages ne sont pas "trop différents" et que vous pouvez accepter une certaine agrégation de données.
Binning est une fonction de colonne dans JMP
Suivi du questionneur initial :
Merci pour les suggestions. Je ferai très probablement la jointure en dehors de JMP, puis je ferai l'analyse après la combinaison.
Je ne sais pas combien d'autres personnes rencontrent cela, mais cela pourrait être une suggestion à transmettre à JMP pour que cette fonctionnalité soit intégrée à la boîte de dialogue de jointure au lieu d'étapes supplémentaires en dehors de celle-ci.
@Peter_Hersh compris et je suis d'accord qu'il est probablement imprudent de recommander JMP comme logiciel idéal de nettoyage et de rangement des données, au moins pour des cas comme celui-ci. Le point fort de JMP a toujours été l'exploration et l'analyse par rapport aux tâches inhabituelles d'organisation des données. Les problèmes de jointure de données basés sur le temps sont actuellement mieux gérés en dehors de JMP dans les langages de codage dans lesquels vous prenez des décisions intentionnelles sur ce qu'il faut faire lorsque vous avez des mappages plusieurs-à-un, ou des indications temporelles qui sont systématiquement fausses, etc. Merci encore.
@mjoner nous ne prévoyons pas d'ajouter cela à JMP pour l'instant.Le problème est que le passage d'une correspondance réelle à une correspondance floue n'est pas quelque chose avec lequel nous sommes à l'aise en termes de véritable jointure.L'utilisation du regroupement ou même du tri du tableau par horodatage et de la comparaison des tableaux de données devrait aider à résoudre certains des défis.
@mjoner , Il existe une solution de contournement avec les formules rapides à l'intérieur de l'option de clic droit sur les en-têtes de formule.Cela permettra d'arrondir la date et l'heure à la minute, seconde et cinq secondes les plus proches.Je sais que ce n'est pas aussi pratique qu'une correspondance floue, mais c'est une autre option.Je veillerai à ce que le développement sache