La mise en correspondance de deux tables à l'aide de Table\Join et Table\Update n'a pas abouti.Ci-joint les tableaux A, B et C.
Le tableau A comporte 30 entrées de Peter.
Le tableau B contient 8 790 entrées de Jane.
Le tableau C est le tableau joint correct effectué manuellement.
Je souhaite faire correspondre les entrées de Peter et Jane et créer un sous-ensemble ne contenant que les « Lieux » du tableau A, soit le tableau C.
J'avais utilisé Table\Join et Table\Update, mais les résultats n'étaient pas précis.
Par exemple, si vous utilisez Location=-216,161, voici le résultat de la jointure de la table :
Lieu Peter Jane
-216 161 Membrane RDL
-216 161 RDL_Membrane .
-216 161 Débris Débris
Automatisation et scriptageRe: Appariement de 2 tables à l'aide de Table\Join et Table\Update sans succèsLa fonction de jointure/mise à jour fonctionne correctement car il existe plusieurs correspondances. Vous devrez probablement ajouter une fonction de suppression des valeurs pour éliminer les valeurs « superflues ».

Re: Appariement de 2 tables à l'aide de Table\Join et Table\Update sans succèsBonjour Jarmo,
Votre résultat est incorrect. Pour la position -216,161, Peter a 3 sorties et Jane 2. Le résultat attendu est celui ci-dessous. Comment automatiser ce processus en JSL ?
Lieu Peter Jane
-216 161 Membrane RDL
-216 161 RDL_Membrane .
-216 161 Débris Débris
Re: Appariement de 2 tables à l'aide de Table\Join et Table\Update sans succèsCe résultat est correct pour une opération de jointure/mise à jour, mais il ne correspond peut-être pas à ce que vous recherchez.
1. Créez une copie de la colonne Jane dans la table B.
2. Utilisez cette nouvelle colonne (la colonne 3 dans mon cas) comme colonne de correspondance pour la mise à jour.

3. Sélectionnez les colonnes « Emplacement » et « Jane », puis Lignes > Sélection de lignes > Supprimer les doublons.
4. Sélectionnez uniquement la colonne Jane (cliquez sur l'en-tête de colonne (il faut parfois maintenir la touche Alt enfoncée)) et supprimez ces valeurs (appuyez sur Suppr).


Re: Appariement de 2 tables à l'aide de Table\Join et Table\Update sans succèsJe souhaite réaliser cela en JSL. De plus, l'ensemble de données évoluera et il arrivera que la colonne de Jane contienne des doublons, ce qui est tout à fait normal.
Re: Appariement de 2 tables à l'aide de Table\Join et Table\Update sans succèsJe tenterais probablement de procéder sous forme de flux de travail. Vous pouvez bien sûr utiliser directement JSL si vous savez écrire un script.
Re: Appariement de 2 tables à l'aide de Table\Join et Table\Update sans succèsPourriez-vous envisager de modifier d'abord le format de vos données ? D'après mon expérience, il est parfois plus simple de reformater les données pour faciliter leur analyse, plutôt que d'utiliser des scripts complexes pour adapter l'analyse à leur format. Avoir plusieurs lignes correspondant à un emplacement particulier (format vertical) fonctionne dans de nombreux cas, mais se complique en présence d'observations dupliquées (c'est-à-dire plusieurs lignes parfaitement identiques). JMP ne sait pas toujours comment gérer ces doublons et peut donc ne pas fournir les résultats escomptés lors de la jointure.
Par exemple : envisageriez-vous de passer du format vertical au format horizontal ? Ce type de modification est courant, par exemple, dans les données d’inspection/de test des semi-conducteurs lorsqu’il existe plusieurs catégories d’erreurs ou niveaux de rendement.
Voir plus...
Local( {obj},
obj = Data Table( "Table A" ) << Tabulate(
Add Table(
Column Table(
Grouping Columns( :Peter ),
Add Aggregate Statistics( :Peter )
),
Row Table( Grouping Columns( :Location ) )
)
);
obj << Make Into Data Table;
obj << Close Window;
);
Ce qui donne un tableau comme celui-ci :

Combiner les tableaux dans ce format pour les deux opérateurs serait beaucoup plus simple.
Une autre option à envisager est le modèle à réponses multiples. Par exemple :
Voir plus...
dt=Data Table( "Table A" ) << Split(
Split By( :Peter ),
Split( :Peter ),
Group( :Location ),
Output Table( "Split of Table A by Peter" ),
Sort by Column Property
);
// New formula column: Concatenate[BL_Twin,Debris,Good_FS,Probemarks,RDL_Membrane,RDL_SpotsDark]
dt <<
New Formula Column(
Operation( Category( "Character" ), "Concatenate with Comma" ),
Columns(
:BL_Twin, :Debris, :Good_FS, :Probemarks, :RDL_Membrane, :RDL_SpotsDark
)
) << Run Formulas;
dt:"Concatenate[BL_Twin,Debris,Good_FS,Probemarks,RDL_Membrane,RDL_SpotsDark]"n <<
Set Modeling Type( "Multiple Response" );
ce qui ressemble à ceci :
